我们的存储设备有哪些呢?u盘,光盘,硬盘,磁盘,软盘这些都是本地存储设备,还有网络存储设备,这些设备使用之前都要格式化。对于硬盘,如果只有一个分区,数据丢了,有可能会因为影响整个设备,所以需要对硬盘进行分区,让系统识别投入使用。

##一、设备的查看##

1.发现系统中的设备

fdisk -l    ##查看硬盘信息,硬盘是从哪个磁道到哪个磁道被分成了一个区

[root@localhost ~]# fdisk -l

硬盘分为/dev/vda ,/dev/vdb

d06a9ec125bc5922ce031f9354c8afd7.png-wh_

cat /proc/partitions 查看分区信息,分区大小,挂载点,剩余空间,设备信息

[root@localhost ~]# cat /proc/partitions

90ec2b2c44f1b3d73d6534b94ff0461d.png-wh_

2.系统发现的,但没有投入使用,随时可以使用设备

blkid  ##查看设备id信息

[root@localhost ~]# blkid

fdc89c3c617948427d17455ca6a7f995.png-wh_

3.发现并且在使用的设备

df -h 1G=2的N次方(更精确,内存记录大小为k)

[root@localhost ~]# df -h

c5189d6550fff7799da04800ac9167f9.png-wh_

size统计大小是2的n次方

df -H   =10的n次方(G)

[root@localhost ~]# df -H

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        11G  3.2G  7.6G  30% /

devtmpfs        493M     0  493M   0% /dev

tmpfs           509M   87k  509M   1% /dev/shm

tmpfs           509M   14M  496M   3% /run

tmpfs           509M     0  509M   0% /sys/fs/cgroup

0215bb63c82cd2348483c1c35d6ede57.png-wh_

size大小统计是10的n次方

##二、设备名称的读取##

/dev/xd*  设备的名字

x=s  /dev/sd*   ##sata硬盘,或iscsi网络

x=v  /dev/vd*   ##虚拟硬盘,一般出现在虚拟机里

x=h  /dev/hd    ##ide硬盘,一般出现在老式电脑中

 *=a~...       ##/dev/vda,系统中第一块虚拟硬盘

/dev/cdrom,/dev/sr[0-...]##系统中的光驱

/dev/mapper/*  ##系统中的虚拟设备

/dev/sda1      #系统中第一块sata硬盘的第一个分区

如下系统中的第一块sata硬盘的第一到十分区

83620621bb4968709abf0fa0f39202b4.png-wh_

##三、设备的使用##

设备必须要用目录来对设备中的内容进行读取

所以设备在使用时需要做挂载动作

blkid  识别可用设备

[root@foundation60 ~]# blkid

mount  设备   挂载点 ##设备的挂载

把系统中的第二块sata硬盘的第一个分区挂载到/mnt下

mount /dev/sdb1 /mnt/

45eca54fe771a0ad0a582f6e62211ea7.png-wh_

c78d92ad88cfa6a28a75b2322d8f7622.png-wh_

挂载后/mnt是一个只读系统

f2ec62fee4095e9e49aaabd954c4737c.png-wh_

##只读挂载第二块硬盘的第一个分区,挂载到mnt下

mount -o ro /dev/sdb1 /mnt/

[root@foundation60 ~]# mount -o ro /dev/sdb1 /mnt/

[root@foundation60 ~]# ls /mnt

##在设备被使用时,更改设备的挂载参数为rw

mount -o remount,rw /mnt|/dev/sdb1

[root@foundation60 ~]# mount -o remount,rw /mnt/

[root@foundation60 ~]# touch /mnt/qq

[root@foundation60 ~]# ls -l /mnt/

total 208

b74be737cc2f5ecbeb52cdb1e1411263.png-wh_

e94c40b5b05fe638f76e13fe0f9965ed.png-wh_

umount 设备|挂载点 ##设备的挂载点

umount /dev/sdb1 | /mnt

[root@foundation60 ~]# umount /dev/sdb1

92fff948226b70b6387239fe6fe1f781.png-wh_

当/mnt/有进程时

f14c704406394a14a5afbbf21e967e46.png-wh_

3bc8d38da802824927a92e79a23e2680.png-wh_

把/dev/sdb1挂载到/mnt/下

43948aa788ea7c4245b9591bcd967034.png-wh_

注意:当卸载时出现以下情况

[root@foundation60 ~]# umount /mnt

umount: /mnt: target is busy.

        (In some cases useful info about processes that use

         the device is found by lsof(8) or fuser(1))

4bc3f504026d7084a2a5edac5e9b5ff9.png-wh_

表示设备正在被某个程序使用,解决方法如下:

#####进程发现的方式#######

fuser -vm /dev/sdb1

lsof /dev/sdb1

#####进程终止的方式#######

kill -9 pid

fuser -kvm /dev/sdb1

 

fuser -vm /dev/sdb1

[root@foundation60 ~]# fuser -vm /dev/sdb1

cf29b8dd63fe4dd6acf1e4612c556599.png-wh_

显示设备被vim占用

lsof /dev/sdb1

[root@foundation60 ~]# lsof /dev/sdb1

1090d1d82f2ca80ebf8d25b79dfa76b9.png-wh_

fuser -kvm /dev/sdb1

[root@foundation60 ~]# fuser -kvm /dev/sdb1

bf29a2860fd3b995e0108c9d04ed838f.png-wh_

03b8ace021ef00b90992c62d01371e69.png-wh_

列出目录所有内容,包括. .. 的隐藏文件

2c8cf8dce8ad5923ffe3df29b57bd8d0.png-wh_

由于异常退出生成了.sw*文件

[root@foundation60 mnt]# rm -fr ./file.sw*

86cbe774788a14a25b92fa93dbd814f3.png-wh_

bd0418e8c29357458827f004ee484acf.png-wh_

终止掉进程就能卸载了

7f02e6dad7f2d745f2588252f05d3309.png-wh_

##四、分区管理##

#设备分区信息#

1.mbr主引导记录446个字节

2.mpt主分区表64个字节

3.硬盘的有效标实“55aa”2个字节

4.一个主分区占用16个字节记录分区信息

5.一块硬盘上如果用mbr的分区方式最多可以存在4个主分区

6.主分区:位于硬盘的最前面一块区域中,构成逻辑c磁盘。其中的主引导程序是他的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的dos或其他操作系统。此段程序损坏将无法从硬盘引导,但从软驱或光驱引导之后可对硬盘进行读写。

7.扩展分区:分出主分区后,其余的部分可以分成扩展分区,一般剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了,但扩展分区是不能直接用的,他是以逻辑分区方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。

是硬盘磁盘分区的一种。严格的讲,他不是一个实际意义的分区,他仅仅是一个指向下一个分区的指针,这种指针结构将构成一个单向链表,存储分区数据。

8.逻辑分区:硬盘上的一块连续的区域,不同之处在于,每个主分区只能分成一个驱动器,每个主分区都有独立的引导块,可以用fdisk设定为启动区。一个硬盘上最多可以有四个分区,而扩展分区上可以划分出多个逻辑驱动器。这些逻辑驱动器没有独立的引导块,不能用fdisk设定为启动区。主分区和扩展分区都是dos分区。

##创建分区###

flisk /dev/vdb

Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   ##删除分区

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types

   m   print this menu

   n   ##新建分区

   o   create a new empty DOS partition table

   p   ##显示分区标准信

   q   ##退出

   s   create a new empty Sun disklabel

   t   ##修改分区

   u   change display/entry units

   v   verify the partition table

   w   ##将当前操作写入硬盘分区表

   x   extra functionality (experts only)

 

Command (m for help):

Command (m for help): n  ##创建分区

Partition type:##创建分区类型 p主分区  e 扩展分区

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p 主引导分区

Partition number (1-4, default 1):1##确定主分区id

First sector (2048-20971519, default 2048): 分区起始块位置用默认

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M##分区结束块的位置,用+大小的方式指定

Partition 1 of type Linux and of size 100 MiB is set

 

Command (m for help): wq ##保存分区策略并退出fdisk界面

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

 

cat /proc/partitions   ##查看设备是否被系统识别

 [root@localhost ~]# cat /proc/partitions


d8d04ab236b437791b6f5bd94fad8a48.png-wh_

a0df01eebd34e6f88846a94cd6df53d2.png-wh_

f5e30d30e01da579bdd5094b9c71d687.png-wh_

e8e1a672d9ba1f55103d1ae19b4aef11.png-wh_

查看分区信息:cat /proc/partitions

cbdf897d5672d3ebca10dfbb6b7383ee.png-wh_

mkfs.xfs  /dev/vdb1  ##格式化设备,在设备上安装文件系统xfs

[root@localhost ~]# mkfs.xfs /dev/vdb1

95d535ff8a829596cf3d1ab214a61c9e.png-wh_

blkid   ##查看可用设备,可以看到被格式化好的设备/dev/vdb1

[root@localhost ~]# blkid

5e4e28151b6dd1b8098ebd3eb5405cb5.png-wh_

26b7063d6426f62481454fa1ecc3f883.png-wh_

mount /dev/vdb1 /qq  ##挂载设备使设备投入使用

##设备的永久挂载

vim /eetc/fstab    ##设备挂载策略文件

设备            挂载点    文件类型      挂载参数     是否备份设备  是否检测设备

/dev/vdb1       /qq        xfs        defaults       0                   0

reboot

#####注意:以上参数写错会使系统无法启动(用前面忘记密码后,重启系统的方式更改)######

1.重新启动系统

2.在系统启动阶段按上下健停止系统系统引导

3.选择启动引导标题,按“E”进行编辑

4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

5.ctrl+x启动设定过后的系统引导条目

6.进入系统后执行chroot /sysroot切换到真实的系统环境

7.更改fstab,vim /etc/fstab

8.exit两次使系统自动重新启动

63c5a7db4def77a9c56f27a55147cf59.png-wh_

7eff5b585db6eeab0e12ab0350ebb050.png-wh_

更改完配置文件,重启系统yunxing

6b1308fed9764f9c1bcf28bad0e92f7c.png-wh_

查看设备的挂载df ,/dev/vdb挂载到qq下

a5debdb3591ad46210c23e079fda24bf.png-wh_

若不想永久挂载,删除配文件中挂载内容即可

c02cdb7cd13efdf870b44c20b33db6e7.png-wh_

ac78b88e9be7d1e11b1d186396e2d5ab.png-wh_

##删除分区 

umount /dev/vdb1

fdisk /dev/vdb

d  删除

p  查看分区

852f3123080e3e73499e4d5134ef2156.png-wh_

8b64e0fffc71f66a53fa4fbec84de1f1.png-wh_

查看分区信息 cat /proc/partitions

9c44284f051034a09bcc799f74234dfe.png-wh_


五、swap 分区的管理

1.##swap 交换分区,系统自己使用,不需要挂载


swap 分区的建立

 

1)划分分区,并修改分区的id为swap

fdisk /dev/vdb   ##建立分区

Device Boot      Start         End      Blocks   Id  System

/dev/vdb1            2048      206847      102400   83  Linux默认情况下,此分区时linux的普通分区

 

Command (m for help): p

Command (m for help): t  ##修改分区id

Selected partition 1

Hex code (type L to list all codes): l ##列出所有id类型的代码

Hex code (type L to list all codes): 82 ##把/dev/vdb1的分区类型修改为swap,swap类型代码为82

Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): p

/dev/vdb1            2048      206847      102400   82  Linux swap / Solaris

Command (m for help): wq

32ed69ec23116d5c7b1a2b7043988ad9.png-wh_

ebe32ccb0bf33ddd1d31b7340fb1370f.png-wh_

9296f6eeee8c9869d188a63b83a63f22.png-wh_

查看分区信息

19b0991f5a6e34ab24aca9dfaa1dae59.png-wh_

2)[root@localhost ~]# mkswap /dev/vdb1 ##格式化swap文件系统格式

b1d61e1b81930efdac61daeaac4a1fad.png-wh_

[root@localhost ~]# blkid ##查看可用设备

77f2ac82d1ee49a4667dddd2d70b3881.png-wh_

3)[root@localhost ~]# swapon -a /dev/vdb1 ##激活swap设备,使系统利用此设备

16002c59c453fb635fee332d17cac1cd.png-wh_

4)swap 分区的查看

  swapon -s

[root@foundation60 ~]# swapon -s

e4bae7750043f0cba5303cff9924146f.png-wh_

永久设定

[root@ssh-server ~]# vim /etc/fstab   

/swapfile   swap  swap  defaults  0 0

f8ead11fc3afd06e706e646647470490.png-wh_

dd705e807a01ba65f59bc189c6b263cb.png-wh_

##当磁盘全部被占用,不能创建新分区时,可以用文件来代替分区

[root@localhost ~]# dd if=/dev/zero of=/swapfile bs=1M count=1000

3bc438bfce28d658820535cdb2bac821.png-wh_

##此文件创建后的步骤和设备的步骤一致

2.##swap分区的删除

[root@localhost ~]# vim /etc/fstab  ##删除配置文件中的内容

[root@localhost ~]# swapoff /dev/vdb1 ##关掉设备

[root@localhost ~]# swapoff /swapfile ##关掉文件

[root@localhost ~]# fdisk /dev/vdb ##删除分区

[root@localhost ~]# rm -rf /swapfile##删除文件

删除文件中的挂载内容

3154af87402d13723844bf5df71c1531.png-wh_

f054dac499f36ec59cada7d86f990798.png-wh_

关掉设备swapoff /dev/vdb1

0caf923c601ecabd7a951a87ab692b4b.png-wh_

9ab28e478d606dcfd9af83db9348f15e.png-wh_

删除分区  fdisk /dev/vdb d:删除,p:查看分区

9ceed6fe6bdef3910ddb8b90f1358ac0.png-wh_

eccdca08f3635449e1064b3a123ed8a9.png-wh_

删除文件rm -fr /swapfile

48a82454d13cf02660d5e3b1eb29bdf8.png-wh_

查看分区信息,swap分区已删除

08f2414a6f06915c208a2a1afac73f60.png-wh_

六、磁盘配额

为磁盘使用用户分配额度:能够做的最多的事情

##分区配额是针对与设备的

(1)新建分区

fdisk /dev/vdb n:新建  p:查看分区

12de35dab148c44ae4d7032dc41583e2.png-wh_

(2)格式化文件系统格式为xfs

mkfs.xfs /dev/vdb

67a4075c266a1a69fcb479fb681b34e4.png-wh_

同步系统 proprobe

63060b7daf9077d08facf1bb5f84fc14.png-wh_

(3)设备的挂载 mount -o usrquota /dev/vdb1 /qq/

33571880f4861201d063d400675a71f1.png-wh_

更改权限

939f688304cdddef96b1b308b3357323.png-wh_

(4)为磁盘使用用户student用户分配额度

blocks :用户在设备上已存在的大小

soft:软额度

hard:硬额度

inodes:文件个数

88910652fca38a29c6a770be2d4ef1b9.png-wh_

283785d59516658437f2785fae5f6f46.png-wh_

给student用户创建分区,有硬盘限制

b9910d6839f292634eb3d5df15fe667c.png-wh_

永久的设备配额,修改配置文件

aa393032732a34317f436c8465fa877c.png-wh_

f0a650c3e9e4608ab5cbfac6429cf95b.png-wh_

七、分区方式的修改

 mbr<----->gpt

parted /dev/vdb

mklabel ##修改设备分区方式标签

gpt把原有的dos标签改成gpt格式

y

quit

65761a1a5b773f4b88dc768911cd835e.png-wh_

a1890e65c10dfd97f12bd8de98510a2e.png-wh_

查看设备 blkid

8363063d8f4b9ae5630c09887fd4ae61.png-wh_

gpt<--->mbr

d0e20263ff6808f3572d5e389b95c81c.png-wh_

八、分区加密

1.建立分区

[root@localhost ~]# fdisk /dev/vdb3b8ca823e002869b510af5d83fa4a757.png-wh_

2.[root@localhost ~]# cryptsetup --help 建立加密,命令用法

[root@localhost ~]# cryptsetup luksFormat /dev/vdb1

 

WARNING!

========

This will overwrite data on /dev/vdb1 irrevocably.

 

Are you sure? (Type uppercase yes): YES是否加密,必须大写

Enter passphrase: 密码必须大于八位

Verify passphrase: 

18f73548435d59dba51dfbcb7ca1b843.png-wh_

3.[root@localhost ~]# cryptsetup open /dev/vdb1 qq打开加密文件,文件名为qq

edf1c3596c5bcfc9c4d6fb5fb7c825f5.png-wh_

4.[root@localhost ~]# mkfs.xfs /dev/mapper/qq##文件系统格式化加密文件,名字为qq

b28943964a2f91f83bd6ac812a2f50bf.png-wh_

5.[root@localhost ~]# mount /dev/mapper/qq /mnt/##文件格式化后可挂载

5e8d8f139ab3ed6c4c44ee50cd82818e.png-wh_

03fe47b329f41b2cc7f5671d043ba823.png-wh_

6.[root@localhost ~]# umount  /mnt/ ##卸载

72ed9ad5976e36fb36956569a0639ada.png-wh_

7.[root@localhost ~]# cryptsetup close qq ##关闭加密文件

47504ab777c3f0c2ab5be5a4324abd34.png-wh_

[root@localhost ~]# mount /dev/mapper/qq /mnt/关闭之后不能执行挂载

mount: special device /dev/mapper/qq does not exist

6f5cd43b7a799ba5cd936142137f419a.png-wh_

[root@localhost ~]# cryptsetup open /dev/vdb1 qq在打开加密文件

Enter passphrase for /dev/vdb1: 

fc5db62a2e5ec7f9798d6d80637bd2c6.png-wh_

[root@localhost ~]# mount /dev/mapper/qq /mnt/可执行

6fd3ba8813d6965a470ec6cc9fc17cae.png-wh_

28ca30622b3e0d6d56ae15ccb0ffedeb.png-wh_

[root@localhost ~]# umount /mnt/

[root@localhost ~]# cryptsetup close qq

c317bf6d84060580ed6439c96accf978.png-wh_

e20f534ba52374a81ef505643d59e64f.png-wh_

##开机自动挂载

[root@localhost ~]# vim /etc/fstab

[root@localhost ~]# vim /etc/crypttab

[root@localhost ~]# vim /root/passfile

[root@localhost ~]# chmod 600 /root/passfile

[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/passfile

Enter any passphrase:

[root@localhost ~]# reboot 

将信息写入配置文件

2c82176510d3bbd37063f67125fa9ba7.png-wh_

设备  挂载点  格式   参数  是否检测  是否备份

d13b86440eadd20aade5b9845d6bc20a.png-wh_

加密文件名字  设备   加密文件密码存放位置

ffcd3c7a2960dcead9441e2645523431.png-wh_

53b8457635521fd372ce6a90ee5506c1.png-wh_

密码写入文件 vim /root/passfile (密码个数超过八个)

481530065a91c951f6f2ab650a65fcba.png-wh_

5db628f46fe063560f8f470d9cd1237f.png-wh_

给文件加上权限,提高保密性

b005a40859e242a0a3f4dbac0bec3915.png-wh_

c2a4fc327a50608d9f61e987121f0f52.png-wh_

reboot 让系统读取配置文件中的内容,自动挂载

15c7aa7e604e0fa1655d7fdd18a7b307.png-wh_

c2be02d70a28cf4b5a5b0bc9c6d6da3a.png-wh_

##清除密码信息

[root@localhost ~]# umount /dev/mapper/qq ##卸载设备

[root@localhost ~]# cryptsetup close qq ##关闭

[root@localhost ~]# mkfs.xfs /dev/vdb1 -f##强制格式化文件系统

[root@localhost ~]# vim /etc/fstab##修改配置文件

[root@localhost ~]# vim /etc/crypttab ##删除文件中的内容

[root@localhost ~]# rm -fr /root/passfile ##删除密码

[root@localhost ~]# reboot ##重启

ed24b43908e8c6abff88141fbf9c061d.png-wh_

807618f6d7573dd1d99821ff934f455d.png-wh_

格式化文件系统,-f强制

98d9249e0cbd1f1b3afa2164d522765e.png-wh_

删除配置文件中的内容

113e29c18ff5382e3bc5950b5d4c41c1.png-wh_

b5c422a6bf5d8eb381047f84ad9d18e4.png-wh_

39d0ea4b1fde1b4e318c1cee18c6e2a1.png-wh_

8631cd38175315bc0dc59df9bfac6fad.png-wh_

删除密码

ed9b2c080944c1c9ad480ba4c368b9b2.png-wh_