使用 RAID 与 LVM 磁盘阵列技术:最后附LVM测试
RAID(独立冗余磁盘阵列)
RAID 0 把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。 若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。 RAID 1 把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份) 当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。 RAID 5 把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。 RAID 5 磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到 除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷 RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。 RAID 这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题 RAID 10 RAID 10 技术是 RAID 1+RAID 0 技术的一个“组合体”。 RAID 10 技术需要至少 4 块硬盘来组建,其中先分别两两制作成 RAID 1 磁盘阵列,以保证数据的安全性; 然后再对两个 RAID 1 磁盘阵列实施 RAID 0 技术,进一步提高硬盘设备的读写速度。 从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏 50%的硬盘设备而不丢失数据。
生产环境中用到的服务器一般都配备 RAID 阵列卡
在虚拟机中,mdadm 命令用于管理 Linux 系统中的软件 RAID 硬盘阵列
“mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”。 -a 检测设备名称 -n 指定设备数量 -l 指定 RAID 级别 -C 创建 -v 显示过程 -f 模拟设备损坏 -r 移除设备 -Q 查看摘要信息 -D 查看详细信息 -S 停止 RAID 磁盘阵列 详细查询linux RAID.txt # mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde -C 参数代表创建一个 RAID 阵列卡; -v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0 就是创建后的RAID 磁盘阵列的名称; -a yes 参数代表自动创建设备文件; -n 4 参数代表使用 4 块硬盘来部署这个 RAID 磁盘阵列;而-l 10 参数则代表 RAID 10 方案; 最后再加上 4 块硬盘设备的名称 # mkfs.ext4 /dev/md0 ##把制作好的 RAID 磁盘阵列格式化为 ext4 格式 # mkdir /RAID # mount /dev/md0 /RAID ##创建挂载点然后把硬盘设备进行挂载操作。 # df -h # mdadm -D /dev/md0 ##查看/dev/md0 磁盘阵列的详细信息 # echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab ##把挂载信息写入到配置文件中
损坏磁盘阵列及修复
在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用 mdadm 命令将其移除,然后查看 RAID 磁盘阵列的状态,可以发现状态已经改变。 # mdadm /dev/md0 -f /dev/sdb mdadm: set /dev/sdb faulty in /dev/md0 # mdadm -D /dev/md0 /dev/md0: Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde 0 8 16 – faulty /dev/sdb 在 RAID 10 级别的磁盘阵列中,当 RAID 1 磁盘阵列中存在一个故障盘时并不影响 RAID10 磁盘阵列的使用。 当购买了新的硬盘设备后再使用 mdadm 命令来予以替换即可,在此期间我们可以在/RAID 目录中正常地创建或删除文件。 # umount /RAID # mdadm /dev/md0 -a /dev/sdb # mdadm -D /dev/md0 Events : 56 Number Major Minor RaidDevice State 4 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde # mount –a
磁盘阵列+备份盘
RAID 10 磁盘阵列中最多允许 50%的硬盘设备发生故障,但是存在这样一种极端情况,
即同一 RAID 1 磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。
# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde 创建一个 RAID 5 磁盘阵列+备份盘。 参数-n 3 代表创建这个RAID 5 磁盘阵列所需的硬盘数 参数-l 5 代表 RAID 的级别 参数-x 1 则代表有一块备份盘 # mdadm -D /dev/md0 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 4 8 48 2 active sync /dev/sdd 3 8 64 - spare /dev/sde ###备份盘,等待中 # mkfs.ext4 /dev/md0 # echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab # mkdir /RAID # mount -a # mdadm /dev/md0 -f /dev/sdb ##模拟磁盘损坏 # mdadm -D /dev/md0 Number Major Minor RaidDevice State 3 8 64 0 spare rebuilding /dev/sde 1 8 32 1 active sync /dev/sdc 4 8 48 2 active sync /dev/sdd 0 8 16 - faulty /dev/sdb
LVM(逻辑卷管理器)
在硬盘分好区或者部署为 RAID 磁盘阵列之后,再想修改硬盘分区大小就不容易了。
LVM(逻辑卷管理器)。 LVM 可以允许用户对硬盘资源进行动态调整。
逻辑卷管理器是 Linux 系统用于对硬盘分区进行管理的一种机制,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷
尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。
而 LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行
卷组合并。用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分区的动态调整。
比如小明家里想吃馒头但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需 要把这些面粉(物理卷[PV, Physical Volume])揉成一个大面团(卷组[VG, Volume Group]) 然后再把这个大团面分割成一个个小馒头(逻辑卷[LV, Logical Volume]),而且每个小馒头 的重量必须是每勺面粉(基本单元[PE, Physical Extent])的倍数。 常用的 LVM 部署命令 功能/命令 物理卷管理 卷组管理 逻辑卷管理 扫描 pvscan vgscan lvscan 建立 pvcreate vgcreate lvcreate 显示 pvdisplay vgdisplay lvdisplay 删除 pvremove vgremove lvremove 扩展 vgextend lvextend 缩小 vgreduce lvreduce
命令解释与集合
1 让新添加的两块硬盘设备支持 LVM 技术 # pvcreate /dev/sdb /dev/sdc 2 把两块硬盘设备加入到 storage 卷组中,然后查看卷组的状态 # vgcreate storage /dev/sdb /dev/sdc # vgdisplay 3 切割出一个约为 150MB 的逻辑卷设备。 在对逻辑卷进行切割时有两种计量单位。 --1 是以容量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。 --2 是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例 如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。 # lvcreate -n vo -l 37 storage # lvdisplay 4 把生成好的逻辑卷进行格式化,然后挂载使用。 Linux 系统会把 LVM 中的逻辑卷设备存放在/dev 设备目录中(实际上是做了一个符号链 接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。 # mkfs.ext4 /dev/storage/vo # mkdir /linuxprobe # mount /dev/storage/vo /linuxprobe 5 查看挂载状态,并写入到配置文件,使其永久生效 # df -h /dev/mapper/storage-vo 145M 7.6M 138M 6% /linuxprobe # echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab 扩容逻辑卷 # umount /linuxprobe 1 把上一个实验中的逻辑卷 vo 扩展至 290MB。 # lvextend -L 290M /dev/storage/vo 2 检查硬盘完整性,并重置硬盘容量。 # e2fsck -f /dev/storage/vo # resize2fs /dev/storage/vo 3 重新挂载硬盘设备并查看挂载状态。 # mount -a # df -h 缩小逻辑卷 相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。 所以在生产环境中执行相应操作时,一定要提前备份好数据。 另外 Linux 系统规定,在对 LVM 逻辑卷进行缩容操作之前,要先检查文件系统的完整性 。在执行缩容操作前记得先把文件系统卸载掉 # umount /linuxprobe 1 检查文件系统的完整性。 # e2fsck -f /dev/storage/vo 2 把逻辑卷 vo 的容量减小到 120MB。 # resize2fs /dev/storage/vo 120M # lvreduce -L 120M /dev/storage/vo [y/n]: y 3 重新挂载文件系统并查看系统状态。 # mount -a # df -h 逻辑卷快照 LVM 还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。 例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快 照卷进行覆盖还原。 LVM 的快照卷功能有两个特点: --快照卷的容量必须等同于逻辑卷的容量; --快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。 # vgdisplay Alloc PE / Size 30 / 120.00 MiB Free PE / Size 10208 / 39.88 GiB 卷组中已经使用了 120MB 的容量,空闲容量还有39.88GB。接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。 # echo "Welcome to Linuxprobe.com" > /linuxprobe/readme.txt # ls -l /linuxprobe 1 使用-s 参数生成一个快照卷,使用-L 参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。 # lvcreate -L 120M -s -n SNAP /dev/storage/vo # lvdisplay --- Logical volume --- LV Path /dev/storage/SNAP LV Name SNAP VG Name storage LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt LV snapshot status active destination for vo LV Status available Allocated to snapshot 0.01% Snapshot chunk size 4.00 KiB 2 在逻辑卷所挂载的目录中创建一个 100MB 的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了 # dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M # lvdisplay Allocated to snapshot 83.71% Snapshot chunk size 4.00 KiB 3 为了校验 SNAP 快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载 # umount /linuxprobe # lvconvert --merge /dev/storage/SNAP 4 快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的 100MB 的垃圾文件也被清除了。 # mount -a # ls /linuxprobe/ 删除逻辑卷 需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。 1 取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。 # umount /linuxprobe # vim /etc/fstab 2 删除逻辑卷设备,需要输入 y 来确认操作。 # lvremove /dev/storage/vo 3 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。 # vgremove storage 4 删除物理卷设备。 # pvremove /dev/sdb /dev/sdc
测试与验证
1 扩展磁盘空间 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 60G 0 disk ├─sda1 8:1 0 953M 0 part /boot ├─sda2 8:2 0 37.3G 0 part /home ├─sda3 8:3 0 14G 0 part / ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 190M 0 part /boot/efi └─sda6 8:6 0 7.7G 0 part └─centos-swap 253:0 0 7.7G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ##新增加的2块磁盘,分别20gb sdc 8:32 0 20G 0 disk sr0 11:0 1 1024M 0 rom [root@localhost ~]# pvcreate /dev/sdb /dev/sdc ##创建物理卷组 Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created. [root@localhost ~]# vgcreate storage /dev/sdb /dev/sdc ##创建卷管理 Volume group "storage" successfully created [root@localhost ~]# vgdisplay ##查看卷 --- Volume group --- VG Name storage System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 39.99 GiB PE Size 4.00 MiB Total PE 10238 Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiB VG UUID r1qEP9-f1LI-Q1k8-nd2a-w0bp-cJc0-FelWQh --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <7.66 GiB PE Size 4.00 MiB Total PE 1960 Alloc PE / Size 1960 / <7.66 GiB Free PE / Size 0 / 0 VG UUID rIcE0e-uMmP-hc2m-LVxk-9e4F-s5e1-bhii32 [root@localhost ~]# lvcreate -n vo -l 37 storage ##创建逻辑卷 Logical volume "vo" created. [root@localhost ~]# lvdisplay ##查看 --- Logical volume --- LV Path /dev/storage/vo LV Name vo VG Name storage LV UUID 0cwDCJ-NPER-tiZq-9IaQ-QZ9U-f7Iw-YdIjGP LV Write Access read/write LV Creation host, time localhost.localdomain, 2020-07-08 09:42:03 +0800 LV Status available # open 0 LV Size 148.00 MiB Current LE 37 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID vgpchw-JhGV-u3j6-ax9u-z1KG-lSaE-220qp6 LV Write Access read/write LV Creation host, time localhost, 2020-07-02 16:23:58 +0800 LV Status available # open 2 LV Size <7.66 GiB Current LE 1960 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@localhost ~]# mkfs.ext4 /dev/storage/vo ##格式化创建的逻辑卷vo mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 38000 inodes, 151552 blocks 7577 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=33816576 19 block groups 8192 blocks per group, 8192 fragments per group 2000 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done [root@localhost ~]# mkdir /linuxhq ##创建新的目录 [root@localhost ~]# mount /dev/storage/vo /linuxhq ##挂载vo逻辑卷到新创建的目录 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 7.5G 5.5G 58% / devtmpfs 977M 0 977M 0% /dev tmpfs 993M 393M 600M 40% /dev/shm tmpfs 993M 14M 979M 2% /run tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda2 37G 870M 34G 3% /home /dev/sda1 922M 131M 729M 16% /boot /dev/sda5 190M 8.0K 190M 1% /boot/efi tmpfs 199M 12K 199M 1% /run/user/42 tmpfs 199M 0 199M 0% /run/user/0 /dev/mapper/storage-vo 140M 1.6M 128M 2% /linuxhq [root@localhost ~]# echo "/dev/storage/vo /linuxhq ext4 defaults 0 0 " >> /etc/fstab ##永久生效 [root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Jul 2 04:23:59 2020 # # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=5e4382d7-6863-4b58-84f0-548c0bf1d2e4 / ext4 defaults 1 1 UUID=53f634a4-f101-4ede-8f6a-80f487f9385f /boot ext4 defaults 1 2 UUID=99E4-1131 /boot/efi vfat umask=0077,shortname=winnt 0 0 UUID=1382cd2b-f7f0-4c19-b724-a3c6210e56f1 /home ext4 defaults 1 2 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/storage/vo /linuxhq ext4 defaults 0 0 2 扩容逻辑卷 在linuxhq目录下创建文件 [root@localhost test1]# touch 1.txt 2.txt [root@localhost test1]# echo "acb 123" >1.txt [root@localhost test1]# ll total 1 -rw-r--r-- 1 root root 8 Jul 8 09:49 1.txt -rw-r--r-- 1 root root 0 Jul 8 09:49 2.txt [root@localhost test1]# pwd /linuxhq/test1 测试扩展该逻辑卷 [root@localhost ~]# umount /linuxhq/ ##卸载挂载的目录 [root@localhost ~]# lvextend -L 300M /dev/storage/vo ##扩展已经存在的逻辑卷 Size of logical volume storage/vo changed from 148.00 MiB (37 extents) to 300.00 MiB (75 extents). Logical volume storage/vo successfully resized. [root@localhost ~]# e2fsck -f /dev/storage/vo ##检查硬盘的完整性 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/storage/vo: 14/38000 files (0.0% non-contiguous), 10455/151552 blocks [root@localhost ~]# resize2fs /dev/storage/vo ##重置硬盘容量 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/storage/vo to 307200 (1k) blocks. The filesystem on /dev/storage/vo is now 307200 blocks long. [root@localhost ~]# mount /dev/storage/vo /linuxhq ##重新挂载目录 [root@localhost ~]# mount -a [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 7.5G 5.5G 58% / devtmpfs 977M 0 977M 0% /dev tmpfs 993M 393M 600M 40% /dev/shm tmpfs 993M 14M 979M 2% /run tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda2 37G 870M 34G 3% /home /dev/sda1 922M 131M 729M 16% /boot /dev/sda5 190M 8.0K 190M 1% /boot/efi tmpfs 199M 12K 199M 1% /run/user/42 tmpfs 199M 0 199M 0% /run/user/0 /dev/mapper/storage-vo 287M 2.1M 266M 1% /linuxhq ##该磁盘空间已经扩展 3 压缩逻辑卷 [root@localhost mysql]# cp ibdata1 /linuxhq/test1/ [root@localhost ~]# umount /linuxhq umount: /linuxhq: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@localhost ~]# umount /linuxhq umount: /linuxhq: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@localhost ~]# fuser -mv -k /dev/storage/vo USER PID ACCESS COMMAND /dev/dm-1: root kernel mount /linuxhq root 16847 ..c.. bash [root@localhost ~]# umount /linuxhq [root@localhost ~]# e2fsck -f /dev/storage/vo e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/storage/vo: 18/76000 files (0.0% non-contiguous), 93587/307200 blocks [root@localhost ~]# resize2fs /dev/storage/vo 120M resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks. The filesystem on /dev/storage/vo is now 122880 blocks long. [root@localhost ~]# lvreduce -L 120M /dev/storage/vo WARNING: Reducing active logical volume to 120.00 MiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce storage/vo? [y/n]: y Size of logical volume storage/vo changed from 300.00 MiB (75 extents) to 120.00 MiB (30 extents). Logical volume storage/vo successfully resized. [root@localhost ~]# mount -a [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 7.5G 5.5G 58% / devtmpfs 977M 0 977M 0% /dev tmpfs 993M 393M 600M 40% /dev/shm tmpfs 993M 22M 971M 3% /run tmpfs 993M 0 993M 0% /sys/fs/cgroup /dev/sda2 37G 870M 34G 3% /home /dev/sda1 922M 131M 729M 16% /boot /dev/sda5 190M 8.0K 190M 1% /boot/efi tmpfs 199M 12K 199M 1% /run/user/42 tmpfs 199M 0 199M 0% /run/user/0 /dev/mapper/storage-vo 113M 78M 27M 75% /linuxhq [root@localhost ~]# cd /linuxhq/test1/ [root@localhost test1]# ll total 77827 -rw-r--r-- 1 root root 8 Jul 8 09:49 1.txt -rw-r--r-- 1 root root 0 Jul 8 09:49 2.txt -rw-r--r-- 1 root root 0 Jul 8 11:05 3.txt -rw-r--r-- 1 root root 0 Jul 8 11:06 4.txt -rw-r--r-- 1 root root 12 Jul 8 11:06 5.txt -rw-r----- 1 root root 79691776 Jul 8 11:07 ibdata1 [root@localhost test1]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 60G 0 disk ├─sda1 8:1 0 953M 0 part /boot ├─sda2 8:2 0 37.3G 0 part /home ├─sda3 8:3 0 14G 0 part / ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 190M 0 part /boot/efi └─sda6 8:6 0 7.7G 0 part └─centos-swap 253:0 0 7.7G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk └─storage-vo 253:1 0 120M 0 lvm /linuxhq sdc 8:32 0 20G 0 disk sr0 11:0 1 1024M 0 rom
--本章大量文字描述和命令来自《linux就该这么学》,实例验证全部来自本地虚拟机测试(亲测)。