linux系统中的磁盘管理
本地设备的识别与显示
fdisk -l
扫描并显示系统中真实的物理硬件
cat /proc/partitions
显示系统能识别的设备
blkid
显示系统能使用的硬件设备
df
显示被系统使用的硬件设备
下图为例:
设备的挂载与卸载
挂载:
mount 设备 挂载点(挂载目录)
卸载有两种方式:
1.umount 设备名称
2.umount 挂载目录
设置挂载参数挂载:
mount -o ro /dev/sdb1 /mnt 以只读方式(挂载参数)挂载设备sdb1到/mnt目录下
(mount查看挂载参数,mount命令的默认挂载参数为rw)
卸载时,设备正忙:
当有进程在使用设备,或进程正处于挂载目录内时,无法卸载目标设备;(即设备正忙)
1.此时应该先使用lsof /dev/sdb1查看占用当前设备的进程信息
然后使用kill -9命令强制结束占用设备的进程
2.或者上面的情况可以使用fuser -kvm /dev/sdb1直接结束阻止设备卸载的进程
下图为例:
图一中为挂载命令与卸载命令的执行结果。
图二,三为使用rw参时挂载设备的执行结果,以及使用mount命令查看挂载参数。
图四,五为使用lsof命令解决设备正忙并卸载设备的执行结果。
图六为使用fuser命令解决设备正忙并卸载设备的执行结果。
磁盘的分区及挂载
1.磁盘分区
fdisk /dev/vdb(设备)
2.磁盘格式化(安装文件系统)
mkfs.xfs /dev/vdb1
命令.格式 格式化的目标设备
这里我们选择使用xfs格式
3.设备挂载
mount 设备 挂载点
注意:
mount是临时挂载的命令,重启后,挂载目录的内容就会消失
永久挂载方式:
vim /etc/fstab
在文件最后一行按如下格式编辑:
挂载设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
对已经挂载的设备再分区:
当我们的设备已经被挂载(设备被使用了)的时候,
再使用fdisk命令接着对我们的磁盘进行分区时,分区保存后(w),会有报错提示:
重新读取分区表失败:设备或资源正忙
此时,只要在分区并保存之后,使用partprobe命令更新分区表即可。
下图为例:
图一,二中,为磁盘分区的操作执行结果
图三中,查看之前的分区结果,并对/dev/vdb1分区设备格式化并挂载
图四,五为对已经有分区被挂载的设备/dev/vdb再次进行分区,并写入的执行结果。可以看到,第一次的cat /proc/partitions命令显示,系统无法识别本次更改的结果。使用partprobe后,再次执行命令显示,就可以正常识别刚才的更改多出的/dev/vdb2分区设备。
swap分区管理
swapon -s(scan)
用于查看有没有swap分区
1.设定分区标签为swap:
在fdisk命令内,分区之后,就按t将分区更改为swap
2.更改这块设备使其有swap的格式:
mkswap /dev/vdb3
3.激活这个分区:
swapon -a /dev/vdb3
vim /etc/fstab 编辑文件使每次开机,都自动激活swap分区(之前的是临时的)
编辑内容如下:
/dev/vdb2 swap swap defaults 0 0
关闭swap分区
1.vim /etc/fstab 取消其中的永久激活
2.swapoff /dev/vdb3 关闭当前的swap分区
(与swapon -a /dev/vdb3 命令的效果相对立,但并不影响上面1,2两步的效果)
下图为例:
配额
为每个使用分区的用户分配一定的使用额度
1.挂载命令激活设备的配额:
mount -o usrquota /dev/vdb1 /mnt/
(执行此命令,使设备具有配额的功能,才能接着执行下面的命令,实现具体的分配)
2.挂载目录,扩大普通用户对该文件的权限,可在在里面读写文件:
chmod 777 /mnt
(即,/mnt目录为一个可供多用户共同使用的公共资源,这样才能体现配额的意义)
3. 编辑文件,分配student用户的配额:
edquota -u student
其文件内容格式如下:
file system blocks soft hard inodes soft hard
将其中的第4项hard的数值更改为102400(1024kb*100=100Mb)
4.测试:
su - student
dd if=/dev/zero of=/mnt/studentfile bs=1M count=200
(用/mnt/studentfile目录表示student用户在/mnt/目录下存储文件的(逻辑上的)分区)
下图为例:
磁盘加密
1.格式化之前,先对设备加密
cryptsetup luksFormat /dev/vdb1
注意:这里有一个bug,必须输入大写YES,而不能使用小写的
cryptsetup --help查看命令参数
2.想要往加密设备里面放东西,要先打开其加密层,生成一个/dev/mapper/下的虚拟设备
(无法将加密设备直接挂载)
cryptsetup open /dev/vdb1 virtual
命令 选项(参数) 真实的加密设备 创建的用于读写加密设备的虚拟设备的名字
3.查看虚拟设备是否成功生成
ls /dev/mapper/
4.格式化虚拟设备
mkfs.xfs /dev/mapper/virtual
5.将虚拟设备挂载,此时就可以正常读写了
6.先卸载虚拟设备,再关闭虚拟设备,防止他人对加密设备读写
cryptsetup close virtual
命令 选项(参数) 创建的用于读写加密设备的虚拟设备的名字
下图为例:
加密磁盘开机自动挂载
(3步,不分先后顺序,但要令前后设置参数一致)
1.设备开机自动挂载
vim /etc/fstab
最后一行加上:
/dev/mapper/virtual /mnt xfs defaults 0 0
2.编辑存放加密命令cryptsetup的文件相关信息,建立存放密码的文件
vim /etc/crypttab(这个文件是系统中存放cryptsetup命令的解密策略的)
(编辑内容: 建立的虚拟设备名 开机自动挂载的加密设备 自己建立的存放密码的文件)
(虚拟设备名写virtual即可,不必写/dev/mapper/virtual)
vim /root/diskpass(这个则是我们新建的用于存放加密设备密码的文件)
chmod 600 /root/diskpass(设置权限,使得只有root用户可以更改密码文件的内容)
3.将密码文件与加密设备相关联
cryptsetup luksAddKey /dev/vdb3 /root/diskpass
命令 参数 加密设备 存放密码文件
下图为例: