linux系统中设备的管理和硬盘盘分区管理

一.设备管理

1.设备识别

dev/xdxn   ##硬盘设备 
/dev/sad   ##串口设备      /dev/hd ##并口设备
/dev/cdrom        dev/sr0   ##光驱
/dev/mapper/*   ##虚拟设备

2.设备发现

fdisk -l      ##查看真是存在的设备
 linux系统中设备的管理和硬盘盘分区管理


cat /proc/partitions  (系统识别到的) ##识别到不一定能用
linux系统中设备的管理和硬盘盘分区管理

blkid     ##系统识别到的能够挂载使用的设备id

linux系统中设备的管理和硬盘盘分区管理
df     ##查看系统正在使用的设备

linux系统中设备的管理和硬盘盘分区管理

df -h (h=2的n次计数 ,1G=1024M)< df -H(H=10的n次方,1G=1000M)     ##df -h更准确

   df   <=blkid   <= cat /prop/partitions <=fdisk -l

3.设备访问

以U盘挂载卸载为例


df 查看系统正在使用的设备,找到U盘设备/dev/sdb1                                                                                                        
卸载U盘 :umount  /dev/sdb1
并把它挂载到 /mnt/ 目录下                              

linux系统中设备的管理和硬盘盘分区管理

切换到 /mnt/目录下
卸载U盘 失败
linux系统中设备的管理和硬盘盘分区管理


打开另一个真机切换到超级用户umount /dev/sdb1,卸载失败   ##因为/mnt/下有正在运行的东西并不能卸载

(In some cases useful info about processes that use

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

可以执行  lsof /dev/sdb1 或者  fuser -kvm /dev/sdb1

[[email protected] mnt]# Killed

然后在卸载:   umount /dev/sdb1  (成功)

 linux系统中设备的管理和硬盘盘分区管理


4.设备的挂载权限

还是以U盘为例

umount /dev/sdb1  (卸载U盘)

linux系统中设备的管理和硬盘盘分区管理

mount   -o ro //dev/sdb1 /mnt/ (把U盘挂载到/mnt/下 并且实行只读权限)

cd /mnt/

touch haha

touch: cannot touch ‘haha’: Read-only file system (只有读写权限)

 linux系统中设备的管理和硬盘盘分区管理

mount -o remount,rw /dev/sdb1  (重新挂载U盘,并且执行读写权限)

 

touch haha 可以建立一个新的文件

linux系统中设备的管理和硬盘盘分区管理

二.硬盘分区管理

分区 64)

mbr 最小446字节  找到分区并启动 512-446=64+2

 mbr 找到分区         64: mpt (分区表)   2: (硬盘标示)  

 

 

系统硬盘只有四个分区 前三个分区可以正常划分(叫主分区) 将最后一个硬盘设置为扩展分区(扩展分区里面可以进行划分,叫做逻辑分区总共有15个分区)     主分区+扩展分区等于4

1.虚拟机里的硬盘划分

linux系统中设备的管理和硬盘盘分区管理由于虚拟机中dev/vda有使用,所以以第二个硬盘/dev/vdb为例子
fdisk /dev/vdb (打开这个硬盘的所在分区)

d ##删除分区

n ##新建分区

p ##显示分区标信息

q ##退出

t ##修改分区id

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

 fdisk /dev/vdb(进入当前分区)

linux系统中设备的管理和硬盘盘分区管理

n  ##新建分区
p  ##显示分区标信息

Command (m for help): n (新建分区)

Partition type:

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

   e   extended

Select (default p): p (进入)

Partition number (1-4, default 1): 1 (第一个硬盘的划分)

First sector (2048-20971519, default 2048): (开始的大小)

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M(加上100M)

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

 

linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理

在这样建立三个分区之后,第四个分区就是扩展分区(可以把他看作一个分组),把后面所有的空间都给它

Command (m for help): n(进入)

Partition type:

   p   primary (3 primary, 0 extended, 1 free)

   e   extended

Select (default e): e(新建一个扩展分区)

Selected partition 4

First sector (616448-20971519, default 616448): (开始)

Using default value 616448

Last sector, +sectors or +size{K,M,G} (616448-20971519, default 20971519): (结束所有的空间都给他)

Using default value 20971519

Partition 4 of type Extended and of size 9.5 GiB is set

linux系统中设备的管理和硬盘盘分区管理

这个分区是在扩展分区里面的逻辑分区

linux系统中设备的管理和硬盘盘分区管理

p ##列出当前的分区信息

linux系统中设备的管理和硬盘盘分区管理

wq退出保存

linux系统中设备的管理和硬盘盘分区管理

格式化硬盘mkfs.xfs  /dev/vdb1 

linux系统中设备的管理和硬盘盘分区管理

partprobe  (刷新)
cat /proc/partitions  (查看分区的详细信息)

linux系统中设备的管理和硬盘盘分区管理

mount  /dev/vdb1  /mnt/    ##将dev/vdb1 挂在到/mnt/目录下
linux系统中设备的管理和硬盘盘分区管理

建立一个新的目录 mkdir haha
mount/dev/vdb2 haha  ##挂载/dev/vdb2到haha目录下 失败

linux系统中设备的管理和硬盘盘分区管理

格式化/dev/vdb2挂载成功

linux系统中设备的管理和硬盘盘分区管理
##只有格式化后的分区设备才能被挂载,而没有格式化的分区是不能被挂载的

d  ##删除分区

linux系统中设备的管理和硬盘盘分区管理

2.分区转换   

parted /dev/vdb    ##打开分区转换

输出:mklabel    
##如果你不知道你想转换的分区类型 可以双击‘Tab’键,回罗列出想要转的格式
     以转换为gpt格式为例               
linux系统中设备的管理和硬盘盘分区管理



打开硬盘分区,建立三个分区,发现已经是gpt格式了,这个格式最多可以建立128个分区

linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理

3.设备的临时挂载与永久挂载

临时挂载:
mount的挂载是临时的,不是永久的,重启之后挂载设备消失
linux系统中设备的管理和硬盘盘分区管理


永久挂载:

vim /etc/fstab

/dev/vdb1 /mnt xfs defaults 0/1              0/1        0/1

设备 挂载点 文件系统类型 挂载参数       不备份/备份  不检测/检测

linux系统中设备的管理和硬盘盘分区管理


mount -a 挂载设备       ##重启之后设备仍然在,为永久挂载
linux系统中设备的管理和硬盘盘分区管理



4.划分并挂载swap区

parted /dev/vdb

fdisk /dev/vdb

l查看所有类型 ,t 修改你需要的改为swap类型

linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理

cat /proc/partitions   ##查看设备是否被系统识别
partprobe                ##手动同步分区列表

mkswap /dev/vdb3  (建立交换区)

swapon -a /dev/vdb2 (启用交换分区)

swapon -s 等价与 cat /proc/partitions

vim /etc/fstab

/dev/vdb2 swap swap defauits 0 0

swapon -a 使挂载策略生效。

linux系统中设备的管理和硬盘盘分区管理
vim /etc/fstab (所要修改的内容)
linux系统中设备的管理和硬盘盘分区管理

linux系统中设备的管理和硬盘盘分区管理



5.磁盘加密

首先建立一个分区
/dev/vdb1

partporbe   ##刷新

cryptsetup  luksFormat /dev/vdb1 (给它加一个密码)

 

WARNING!

========

This will overwrite data on /dev/vdb1 irrevocably.

 

Are you sure? (Type uppercase yes): YES (大写YES)

Enter passphrase:   (密码)

Verify passphrase:    (重复密码)

linux系统中设备的管理和硬盘盘分区管理

当你要挂载这个设备的时候会提示你需要加密

cryptsetup open /dev/vdb1 westos(把这个密码解压到一个文档westos中)

ls /dev/mapper/  ( 就会看到这个密码生成的文档)  
    

mkfs.xfs /dev/mapper/westos (格式化硬盘)
 

mount /dev/mapper/westos /mnt/  把它挂载到/mnt/下

touch /mnt/file{1..5}   建立5个文件

linux系统中设备的管理和硬盘盘分区管理


umount /mnt/   卸载

cryptsetup close westos  关闭这个文档
mount /dev/vdb1 /mnt/  当重新挂载的时候仍然需要密码
linux系统中设备的管理和硬盘盘分区管理



5.密码自启

vim /root/diskpass  建立一个文档用来存放密码(是上一次的那个密码)
linux系统中设备的管理和硬盘盘分区管理

chmod 600 /root/diskpass 加个权让只能超级用户查看

cryptsetup luksAddKey /dev/vdb1 /root/diskpass     把这个钥匙给/root/diskpass

Enter any passphrase:


linux系统中设备的管理和硬盘盘分区管理

vim /etc/crypttab  

linux系统中设备的管理和硬盘盘分区管理

vim   /etc/fstab

linux系统中设备的管理和硬盘盘分区管理

重启虚拟机之后发现仍然挂载,密码自启成功。

linux系统中设备的管理和硬盘盘分区管理

6.删除密码


vim /etc/fstab  打开删除 
vim /etc/crypttab  打开删除

 rm -fr /root/diskpass  删除
umount /mnt/    卸载设备
cryptsetup close haha  关闭密码
mkfs,xfs /dev/vdb1 -f 格式化

linux系统中设备的管理和硬盘盘分区管理

7.磁盘阵列

先进行分区转换,转换到msdos分区

linux系统中设备的管理和硬盘盘分区管理

建立三个ID 为fd的分区

linux系统中设备的管理和硬盘盘分区管理

执行阵列任务

一个虚拟机mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}(建立一个)
令一个真机连接虚拟机执行监控命令:

watch -n 1 cat /proc/mdstat


linux系统中设备的管理和硬盘盘分区管理

8.设备管理和删除

设备管理:

mdadm -D dev/md0 (查看状态)
linux系统中设备的管理和硬盘盘分区管理

mdadm   /dev/md0  -f  /dev/vdb2(损坏设备里面的vdb2)
linux系统中设备的管理和硬盘盘分区管理

mdadm   /dev/md0  -r   /dev/vdb2(删除)
linux系统中设备的管理和硬盘盘分区管理

mdadm   /dev/md0  -a   /dev/vdb2(重新加载)

 linux系统中设备的管理和硬盘盘分区管理

设备删除

umount /mnt/ (卸载这个设备)

mdadm -S /dev/md0 (停止这个设备)

fdisk  /dev/vdb   (把这几个全删除了)

partprobe  (刷新 可以了


9.配额

只针对设备,不针对用户
配额是一个平均分配的过程

9.1建立一个大小为100M的设备硬盘
linux系统中设备的管理和硬盘盘分区管理

9.2格式化这个设备

linux系统中设备的管理和硬盘盘分区管理
9.3加载类型为xfs的设备/dev/vdb1的配额,并挂载到/mnt下

9.4给/mnt赋予一个777的权限
linux系统中设备的管理和硬盘盘分区管理

9.5编辑用户的student的磁盘配额 :edquoto -u student

blocks (本身存在的,有多少就是多少)  soft(容量,超过这个容量会受到警告)  hard(最大配额)  inodes(使用的次数) soft(使用高多次数会警告) hard(最大使用次数)

  ##一般只修改hard

linux系统中设备的管理和硬盘盘分区管理

9.6切换到student用户进行配额

linux系统中设备的管理和硬盘盘分区管理
##由于配额的最大限度为20M,所以当配额为21 的时候,只给20M

9.7 开机自动启动
linux系统中设备的管理和硬盘盘分区管理
linux系统中设备的管理和硬盘盘分区管理