磁盘管理
1./dev/xdxn
x:硬盘类型(s:sata硬盘 h:串口硬盘 v:虚拟硬盘)
x:a..z,硬盘所在个数
n:1..16,分区所在个数
2./dev/cdrom ##系统光驱
/dev/mapper/files ##虚拟硬盘的文件
、文件系统
1.文件系统类型
ext4 支持1EB(1EB=1024PB 1PB=1024TB)的文件系统和单个16TB的文件
linux 6的标准文件系统
ext2 支持最大分区4TB,最大文件2GB
适合小型存储设备
vfat 支持包括一系列相关文件系统(VFAT/FAT16/FAT32),针对较旧版本的Microsoft Windows开发
xfs 支持最大分区9EB
linux 7的标准文件系统,数据完全、性能稳定、扩展性强(8E-1b),传输效率(7G/s)
2.格式化分区
有5个分区,3个主分区,一个扩展分区,一个逻辑分区
mkfs.xfs /dev/vdb5 ##文件系统类型xfs
注意:可用mkfs -t xfs /dev/vdb5进行格式化
[[email protected] ~]# mkfs.xfs /dev/vdb5
meta-data=/dev/vdb5 isize=256 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
查看可用分区
[[email protected] ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb5: UUID="c412c527-b0af-487b-817f-a6078c757ede" TYPE="xfs"
3.挂载mount
普通挂载
mount /dev/vdb5 /mnt
参数挂载
mount -o ro /dev/vdb5 /mnt
挂载后修改参数
mount -o remount,rw /dev/vdb5 /mnt
4.卸载umount /mnt
当/mnt被占用时,不能正常卸载
[[email protected] ~]# 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))
可用lsof(8)查看不能卸载原因
[[email protected] ~]# lsof /mnt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 4569 root 3u REG 253,21 4096 131 /mnt/.hello.swp
或者用fuser(1)查看
[[email protected] ~]# fuser -vmK /mnt
vmK: unknown signal; fuser -l lists signals.
[[email protected] ~]# fuser -vmk /mnt
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 4639 F.... vim
[2]+ Killed vim /mnt/hello
五、gpt分区
1.GUID磁碟分割表
GUID Partition Table:全局唯一标识磁盘分区表
特性对比:
MBR: 3个主分区,1个扩展分区(下含逻辑分区),最多识别16个
GPT:128个分区,管理硬盘大小18EB
ext3:最多支持32TB
ext4:最多支持1EB
xfs:容量8EB-1byte
2.修改前准备(例/dev/vdb)
将要分区的硬盘停止(卸载所有设备)
将该磁盘格式化
3.修改MBR分区改为GPT分区
[[email protected] ~]# parted /dev/vdb
(parted) mklabel
New disk label type?
aix amiga bsd dvh gpt loop mac msdos pc98 sun
六、Swap分区
1.swapon -s ##查看系统的swap分区信息
[[email protected] ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 1023996 0 -1
2.新建swap分区
fdisk /dev/vdb
先建立P分区
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2050047 1024000 83 Linux
修改分区类型
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): l ##L查看所有分区类型的id
修改成功
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2050047 1024000 82 Linux swap / Solaris
3.格式化swap分区
[[email protected] ~]# mkswap /dev/vdb1
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=006ca68c-ab1d-46d6-a454-8bca41b33c26
4.挂载并查看分区信息
[[email protected] ~]# swapon -a /dev/vdb1
[[email protected] ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 1023996 0 -1
注意:以上设置swap分区是临时的,永久设置须修改配置文件
5.修改配置文件,永久设置swap分区 /etc/fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vdb1 swap swap defaults 0 0
/dev/vdb1 ##设备 swap ##挂载点 swap ##文件系统类型
defaults ##挂载参数,默认 0 ##不备份 0 ##不检测
修改后 swapon -a ##检查报错
七、分区配额
分区建好
查看分区表
同步分区表
在看以下
1.挂载时设置配额参数
mount -o usrquota /dev/vdb2 /mnt
2.进行配额设置
edquota -u student
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb2 10240 0 10240 1 0 0
blocks ##文件已占用分区大小 soft ##文件超出配额大小,报警
hard ##文件不能超出配额大小 inodes ##文件个数
soft ## hard
注意:xfs文件系统默认配额功能开启,ext4之前的文件系统需要quotan -n /dev/vdb 命令**
3.切换到student用户实验
配额正常时
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=6
6+0 records in
6+0 records out
6291456 bytes (6.3 MB) copied, 0.00311684 s, 2.0 GB/s
超出配置时,只能截取配额大小的容量
[[email protected] ~]$ dd if=/dev/zero of=/mnt/studentfile bs=1M count=11
dd: error writing ‘/mnt/studentfile’: Disk quota exceeded
11+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00603514 s, 1.7 GB/s
注意:该配额设置是临时的,若需要永久修改,/etc/fstab
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vdb1 xfs /mnt defaults,usrquota 0 0
八、还原设备
1.卸载所有挂载点
umount /mnt
swapoff /dev/vdb1
2.查看是否全部移除
df
swapon -s
3.修改配置文件,还原设置 /etc/fstab
4.删除分区
fdisk /dev/vdb
Command (m for help): d
Partition number (1,2, default 2):
Partition 2 is deleted
九、磁盘加密
1.建立分区
fdisk /dev/vdb
2.设置磁盘密码
[[email protected] ~]# cryptsetup luksFormat /dev/vdb1
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): YES
3.打开磁盘文件
[[email protected] ~]# cryptsetup open /dev/vdb1 test
Enter passphrase for /dev/vdb1: ##名字任意,需要输入密码
4.格式化磁盘
[[email protected] ~]# mkfs.xfs /dev/mapper/test
meta-data=/dev/mapper/test isize=256 agcount=4, agsize=6272 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=25088, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5.挂载后实验
mount /dev/mapper/test /mnt
touch /mnt/file{1..5}
[[email protected] ~]# ls /mnt
file1 file2 file3 file4 file5
[[email protected] ~]# umount /mnt
[[email protected] ~]# ls /mnt
6.关闭磁盘文件
[[email protected] ~]# cryptsetup close test
[[email protected] ~]# mount /dev/mapper/test /mnt
mount: special device /dev/mapper/test does not exist
注意:关闭之后,若再次挂载,需重新打开、建立磁盘文件
7.设置开机自启动
建立密码文件
vim /root/diskpass 直接写密码
修改文件权限,设置root只读
chmod 600 /root/diskpass
修改文件,使磁盘识别密码(test为磁盘文件名)
vim /etc/crypttab
test /dev/vdb1 /root/diskpass
磁盘加密时读取密码文件
cryptsetup luksAddKey /dev/vdb1 /root/diskpass
修改开机自启动文件
vim /etc/fstab
/dev/mapper/test /mnt xfs defaults 0 0
开机后,磁盘自动挂载
[[email protected] ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3808664 6665236 37% /
devtmpfs 469344 0 469344 0% /dev
tmpfs 484932 80 484852 1% /dev/shm
tmpfs 484932 12772 472160 3% /run
tmpfs 484932 0 484932 0% /sys/fs/cgroup
/dev/mapper/test 96940 5176 91764 6% /mnt
注意:若磁盘不能识别密码,则不能正常开机
8.取消磁盘加密
卸载 umount /mnt
关闭磁盘文件 cryptsetup close test
格式化磁盘 ##磁盘已加密,须强制删除
[[email protected] ~]# mkfs.xfs /dev/vdb1
mkfs.xfs: /dev/vdb1 appears to contain an existing filesystem (crypto_LUKS).
mkfs.xfs: Use the -f option to force overwrite.
[[email protected] ~]# mkfs.xfs /dev/vdb1 -f
修改配置文件,还原设置
vim /etc/crypttab
vim /etc/fstab
密码文件删除(可做可不做)
rm -fr /root/diskpass
注释掉上面修改过的东西
十、磁盘阵列管理
0:1/2 + 1/2 ##写入 1:1+1 ##读取 5:0 + 1 ##至少3块磁盘,如2个0,1个1
1.建立3个分区,类型改为raid
Command (m for help): t
Partition number (1-5, default 5): 2
Hex code (type L to list all codes): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'
2、管理raid磁盘
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{2,3,5}
-C ##新建 -a ##表示若目录/dev/md0不存在,建立新的
-l ##磁盘等级 -n ##使用磁盘个数 -x ##闲置磁盘个数
3.查看磁盘信息
mdadm -D /dev/md0
Number Major Minor RaidDevice State
0 253 18 0 active sync /dev/vdb2
1 253 19 1 active sync /dev/vdb3
2 253 21 - spare /dev/vdb5
或者 cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 vdb2[3](S) vdb5[2] vdb3[1]
1048000 blocks super 1.2 [2/2] [UU]
4.破坏一块磁盘,则另一块马上同步数据
mdadm /dev/md0 -f /dev/vdb2
Number Major Minor RaidDevice State
2 253 21 0 active sync /dev/vdb5
1 253 19 1 active sync /dev/vdb3
0 253 18 - faulty /dev/vdb2
5.移除坏掉的磁盘
[[email protected] ~]# mdadm /dev/md0 -r /dev/vdb2
mdadm: hot removed /dev/vdb2 from /dev/md0
6.添加新的raid磁盘
[[email protected] ~]# mdadm /dev/md0 -a /dev/vdb2
mdadm: added /dev/vdb2
7.格式化磁盘阵列,挂载
mkfs.xfs /dev/md0
mount /dev/md0 /mnt
8.关闭raid磁盘,停止使用
mdadm -S /dev/md0
删除分区
同步分区表 partprobe
建议:做完实验后重启,清除所有缓存