Linux系统中的磁盘管理
注意:本次实验内容在虚拟机server中完成
一、本地存储设备的识别
fdisk -l ##真实存在的设备
cat /proc/partitions ##系统识别的设备
blkid ##系统可使用的设备
df ##系统正在挂载的设备
df -H ##系统正在挂载的设备,大小采用1Mb=1000Kb表示
df -h ##系统正在挂载的设备,大小采用1Mb=1024Kb表示
二、设备的挂载和卸载
1.设备名称
/dev/xd* ##硬盘,其中x有s、v、h三种参数:
hd并口硬盘(ide) /dev/hd0 ##连接本机的第一块硬盘
/dev/hd1 ##连接本机的第二块硬盘
sd串口硬盘(sata) /dev/sda /dev/sda1/ ##第一块硬盘的第一个分区
/dev/sdb /dev/sdb1 ##第二块硬盘的第一个分区
vd虚拟硬盘(虚拟机中) /dev/vda /dev/vda1/ ##第一块硬盘的第一个分区
/dev/vdb /dev/vdb1 ##第二块硬盘的第一个分区
/dev/sr0 ##光驱
/dev/mapper/* ##虚拟设备
2.设备的挂载
mount 设备 挂载点
mount /dev/vdb1 /mnt ##挂载vdb1到mnt
umount /mnt | /dev/vdb1 ##卸载/mnt/或/dev/vdb1,两条命令效果一致
mount -o ro /dev/vdb1 /mnt ##只读挂载/dev/vdb1到/mnt/
mount ##查看挂载信息
mount -o remount,rw /dev/vdb1 | /mnt ##重新读写挂载/dev/sdb1或/mnt,两条命令效果一致
3.解决设备正忙情况
有程序在使用此设备时,会出现设备正忙的报错
解决方法一:
fuser -kvm /mnt ##查看并结束挂载在/mnt/设备上的占用进程
umount /mnt ##卸载挂载在/mnt/上的设备
解决方法二:
lsof /mnt/ ##查看挂载在/mnt/设备上的占用进程
kill -9 pid ##使用pid结束占用进程
umount /mnt ##卸载挂载在/mnt/上的设备
三、磁盘分区
1.硬盘0磁道1扇区的512个字节中记录的信息如下
512 = 446 + 64 + 2
【1】 【2】【3】
【1】mbr(主引导记录),446个字节,mbr在系统安装完毕后写入
作用:让磁头移动到启动分区,读取启动文件
【2】mpt(主分区表),64个字节
【3】55aa(硬盘的有效性标识),2个字节
注意:
一块硬盘上如果是mbr的分区方式最多可以划分4个主分区,最后一个主分区可以作为扩展分区,再在其中划分若干个逻辑分区,使得这些逻辑分区的硬盘有效性标识保存在mbr中
mbr 分区模式下一个分区不能超过2T,超过的话采用gpt分区(gpt一个分区不超过18Eb,1Eb=1000Tb)
扩展分区里建立的分区属于逻辑分区(主分区+扩展分区+逻辑分区最多十六个,多了的建立了无法识别使用)
2.分区方法
1)fdisk命令
fdisk -l ##查看磁盘信息分区
fdisk /dev/vdb ##在/dev/vdb上分区
m ##帮助
d ##删除
p ##显示分区信息
q ##退出
t ##修改分区id
n ##新建
w ##保存分区表信息到硬盘
注意:wq退出后可能保存分区信息失败,此时需要命令partprobe 手动同步分区表信息到硬盘
2)分区步骤
Command (m for help): n ##新建
Partition type:
p primary (1 primary, 0 extended, 3 free) ##主分区
e extended ##扩展分区
Select (default p): p
Partition number (2-4, default 2): ##id使用默认
First sector (2099200-20971519, default 2099200): ##分区起始块
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-20971519, default 20971519): +1G ##+1G 分区大小
Partition 2 of type Linux and of size 1 GiB is set
Command (m for help): p ##显示分区信息
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x65e405dd
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 83 Linux
/dev/vdb2 2099200 4196351 1048576 83 Linux
Command (m for help): wq ##退出并保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
注意:当系统已经有三个主分区时,要先划分扩展分区,分配大小时默认为分配所有空间给扩展分区
四、给设备安装文件系统
1.rhel各个版本使用的文件系统:
ext3 rhel5及之前的版本 最多支持32TB的文件系统和2t文件 实际2tb文件系统,16G文件
ext4 rhel6 最多支持1EB的文件系统和16TB文件
xfs rhel7 最多支持18EB的文件系统和9EB文件 读取速度可达(r)7G/s 写入速度可达(w)4G/s
2.挂载新建磁盘设备到系统目录
mkfs.xfs /dev/vdb1 ##把/dev/vdb1 格式化为xfs格式
blkid ##列出系统中可以使用的设备id
mount /dev/vdb1 /mnt/
3.永久挂在磁盘设备到系统目录
vim /etc/fstab #策略,开机自动挂载设备
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs efaults 0 0
注意:0 0表示不备份不检测
mount -a ##读取配置文件,立即生效
五、swap分区管理
1.swap分区建立
划分分区并设定分区标签为82 ##Linux swap的分区模式为82
mkswap /dev/vdb5 ##格式化分区类型为swap文件系统格式
swapon -a /dev/vdb5 ##**/dev/vdb5分区(swap分区在使用时不需要挂载)
swapon -s ##查看swap设备
vim /etc/fstab ##配置开机自动启动swap分区
/dev/vdb5 swap swap defaults 0 0
2.swap分区删除
vim /etc/fstab
dd ##删除掉刚在配置文件中的开机自启命令
swapoff /dev/vdb5 ##关闭swap设备/dev/vdb5
swapon -s ##查看swap设备
最后在fdisk命令中删除/dev/vdb5设备或使用命令mkfs.xfs /dev/vdb5将该设备格式化成xfs文件系统分区
六、配额
配额是针对于分区而不是针对用户的
mkfs.xfs /dev/vdb6
mkdir /public
mount -o usrquota /dev/vdb6 /public ##将/dev/vdb6挂载到/public目录上,同时打开配额功能
chmod 777 /public
注意:先挂设备再改目录权限
edquota -u student ##配置sutdent用户的额度
注意:hard代表配额用户所能写入的最高额度,单位是KB
vim /etc/fstab ##配置开机自动启动
/dev/vdb6 /public xfs defaults,usrquota 0 0
测试:
dd if=/dev/zero of=/public/studentfile bs=1M count=xx
超过额度后会报错
七、磁盘的加密
1.磁盘加密
mkfs.xfs /dev/vdb7
cryptsetup luksFormat /dev/vdb7 ##给/dev/vdb7磁盘分区加密,设定密码
cryptsetup open /dev/vdb7 westos ##生成westos文件管理/dev/vfb7分区,输入之前设定的密码(westos文件默认生成在/dev/mapper/目录中)
注意:给磁盘加密时提问Are uou sure后面需要输入大写的YES
mkfs.xfs /dev/mapper/westos
mount /dev/mapper/westos /mnt/
touch /mnt/file{1..10}
umount /mnt/
cryptsetup close westos ##关闭/dev/vdb7加密分区
cryptsetup open /dev/vdb7 westos ##打开/dev/vdb7加密分区,需要输入密码
mount /dev/mapper/westos /mnt/ ##将解锁过的/dev/vdb7分区挂载到/mnt/目录上
2.加密磁盘开机自动挂载
vim /etc/fstab ##配置开机自动挂载
/dev/mapper/westos /mnt xfsdefaults 0 0
vim /etc/crypttab ##配置加密分区与密码文件关联,未生效
westos /dev/vdb7 /root/westoskey
vim /root/westoskey ##建立密码文件
westos1993
chmod 600 /root/westoskey ##赋予密码文件600权限
cryptsetup luksAddKey /dev/vdb7 /root/westoskey ##使关联加密分区与密码文件的设定生效
3.删除加密磁盘开机自启
umount /mnt/
vim /etc/fstab ##删除开机自启配置
dd
cryptsetup close westos ##关闭加密分区
vim /etc/crypttab ##删除加密分区与密码文件关联
dd
rm -fr /root/westoskey ##删除密码文件
mkfs.xfs /dev/vdb7 -f ##将dev/vdb7分区强行格式化为xfs文件系统分区