这套练习题我刚拿到手就赶紧刷了一遍,说实话,比我想象中要扎实。第2章磁盘、LVM、文件系统与扩容备份,这几个东西单独拎出来都能讲半天,组合在一起更是日常服务器运维的高频场景。题目不光是考命令背得熟不熟,更多的是考你有没有真正理解LVM那套逻辑,碰到磁盘满了、分区不够用的时候,能不能冷静地把事情办完。
我把整套题从头到尾梳理了一遍,结合自己做实验时踩过的坑,把每一类题目的考点、易错点和解题思路都拆开揉碎了写出来。这篇不是单纯的答案粘贴,而是带着你过一遍题目背后的知识点,顺便帮你把“为什么这么做”搞清楚。无论你是刚学Ubuntu的入门者,还是已经在用LVM但心里没底的老手,这套题都能帮你查漏补缺。
1. 练习体系总览:题目到底在考什么
整体看下来,这套配套练习的出题思路很清晰,就是围绕“磁盘管理、LVM逻辑卷管理、文件系统操作、扩容收缩、备份恢复”这五块核心内容展开。不过它没有把每个知识点孤立地考,而是刻意把它们串在了一起,模拟真实服务器环境里会遇到的问题。
1.1 出题目标与知识覆盖
先看覆盖范围。题目从最基础的磁盘识别开始,一路延伸到LVM的创建、卷组扩展、逻辑卷扩容,然后过渡到文件系统的格式化与挂载,最后落点在备份与灾难恢复。这个路径其实就是平时在一台新服务器上从零搭建存储、后续遇到容量瓶颈再扩容的完整流程。
题目里反复出现的一个核心概念就是“LVM的灵活性”。传统的物理分区一旦划分好,想扩大就得折腾半天,甚至要冒着数据丢失的风险。而LVM用“物理卷—卷组—逻辑卷”这层抽象把你从物理磁盘的约束中解放出来。做题的时候你会发现,几乎每一道跟扩容相关的题目,背后都是在考察你对这一层抽象的理解程度。
1.2 题型设计与难度阶梯
题型分布上,有基础概念题、命令操作题、场景分析题和综合实验题。难度是层层递进的:
- 概念题:直接问PV、VG、LV、PE之间的关系,或者某条命令的作用,属于送分题,但也是检验你有没有背死书。
- 操作题:给你一个具体场景,比如“有一块新硬盘,要把它做成LVM并挂载到/data”,让你写出完整命令序列。
- 场景题:抛出一个故障现象,比如“/home分区满了,如何在不影响数据的情况下扩容”,需要你综合考虑LVM扩容和文件系统在线扩展。
- 综合实验题:最后一道大题把前面所有内容融合在一起,模拟从备份到恢复的完整流程。
这种阶梯式设计我觉得挺友好的,你能清楚地看到自己卡在哪一层,是命令不熟,还是逻辑没理顺。
1.3 分值分配与建议时长
如果按百分制粗略估算,磁盘基础题约占20分,LVM专项约30分,文件系统与挂载约15分,扩容与收缩约20分,备份恢复约15分。建议给自己定个150分钟左右的完整作答时间,基础好的可以压缩到90分钟。
这里要提醒一句:不要光在脑子里过一遍觉得“我会了”就跳过操作题。很多命令看着眼熟,真正在终端里敲的时候,参数顺序一错就全废了。建议每道操作题都在虚拟机里实际跑一遍,这套练习题最值钱的地方就在这——它是可以边做边实验的。
2. 磁盘管理基础练习:动手之前先认清硬件
磁盘管理是整章的地基,这部分题目如果你拿不准,后面LVM和扩容相关的基本也会一团乱。好在这部分题目都很实在,考的就是常用命令和对磁盘设备的理解。
2.1 命令熟练度自测题
第一类题比较直白,给你一台刚装好的Ubuntu服务器,要求列出所有磁盘及分区信息。这里就涉及两条高频命令的对比:
lsblk:以树状图形式展示块设备、分区、挂载点信息,直观、可读性强,适合一眼看清整体结构。fdisk -l:显示磁盘详细的分区表信息,包括起始扇区、大小、分区类型等,信息量更大但不那么友好。
做题时如果只让你“查看磁盘分区情况”,优先选lsblk;如果问“查看某块磁盘的分区表详细结构”,那就要fdisk -l /dev/sda。
还有一个容易考的点是lsscsi,用来查看SCSI设备列表,能看到磁盘的设备类型、厂商和盘符对应关系。在做多磁盘识别的场景里,这个命令能帮你准确区分/dev/sda、/dev/sdb是物理上哪块盘,避免后续操作搞错目标。
2.2 分区规划实操题
这类题通常会给你一个具体需求,比如“有一块20G的新磁盘,需要划分两个分区,一个10G,另一个作为扩展分区的容器”,然后让你写出分区操作流程。核心工具不外乎fdisk或parted。
如果你用的是fdisk,操作要点在于:
sudo fdisk /dev/sdb # 输入 n 新建分区 # 输入 p 选择主分区,输入分区号 1 # First sector 直接回车默认,Last sector 输入 +10G # 继续新建第二个分区,类型选择扩展分区 # 输入 w 保存分区表这里最容易翻车的两个坑,一是创建完分区之后忘了执行partprobe让内核重新读取分区表,导致系统不识别新分区;二是分区的起始扇区直接回车采用默认值,这没问题,但如果你手动指定起始扇区又不小心跟已有分区重叠,数据可能就没了。稳妥的做法是:
- 分区完必执行
sudo partprobe或sudo fdisk -l确认分区状态。 - 拿不准时,用
lsblk核对新分区的size是否如预期。
2.3 磁盘识别与命名规律辨析
还有一道让我印象深刻的题目:给你四块不同接口的磁盘,让你判断它们的设备名称。这是典型的考察Linux设备命名规则的题,规律其实很简单:
/dev/sda:第一块SATA/SAS/SCSI磁盘,a、b、c按识别顺序递增。/dev/nvme0n1:第一块NVMe固态硬盘,控制器编号为0、命名空间为1。- 如果你插了块U盘,通常是
/dev/sdb或/dev/sdc,识别顺序取决于硬件探测顺序。
这类题在考试之外也很实用,特别是多块磁盘的服务器上,经常有人不看型号直接格式化,然后后格式化到系统盘。我的习惯是拿到盘后先用lsblk加lsscsi双重确认,再动手分区。
注意:新加的磁盘如果系统里已经有sda、sdb,新硬盘可能是sdc,但这个顺序取决于接口和BIOS识别顺序,在虚拟化环境里尤其不稳定,务必以实际系统显示为准。
3. LVM专项练习:从物理卷到逻辑卷的链路拆解
这套练习题的中坚力量就是LVM。如果前面的题你已经做顺手了,到这里会开始感觉到难度上升——不只是敲命令,而是要把整条链路搞清楚。
3.1 概念辨析题:PV、VG、LV、PE到底是什么关系
关于LVM概念的选择题,最容易搞混的就是PE和LE。简单来说:
- 物理卷(PV):把磁盘或分区初始化为LVM可用的底层存储单元。
- 卷组(VG):由多个PV组成的一个存储池,相当于把若干块盘的容量合并起来。
- 逻辑卷(LV):从VG里切出来的逻辑分区,是最终用来格式化、挂载给系统使用的设备。
- 物理扩展块(PE):VG里最小的存储单位,类似文件系统的簇,默认大小4MiB。
- 逻辑扩展块(LE):逻辑卷对应的映射单位,跟PE一一对应。
我在解释这套概念的时候喜欢用一个类比:PV就像你手里的一块块乐高积木板,VG就是你把这些板子拼成的一个大底板,LV就是你在底板上划定的一块特定区域。PE就是底板上的单位格点,每块区域占多少个格点,这就是LE。
题目里如果问“VG能用的总容量由什么决定”,答案就是该VG内所有PV容量的总和。如果问“PE大小会影响什么”,那就要知道PE越小,块数越多,灵活度更高,但元数据开销也会略微增大;PE越大,能支持的VG/LV容量上限越大,默认4MiB在绝大多数场景下是最优解。
3.2 创建流程操作题:三步走,顺序不能乱
这类题是必考实操题,让你“把两块新盘做成一个卷组vg_data,再切一个逻辑卷lv_web给Web服务使用”。完整流程分三个阶段:
首先是pv阶段:
sudo pvcreate /dev/sdb /dev/sdc sudo pvs然后是vg阶段:
sudo vgcreate vg_data /dev/sdb /dev/sdc sudo vgs最后是lv阶段:
sudo lvcreate -n lv_web -L 10G vg_data sudo lvs如果要做对比实验,你会发现pvs、vgs、lvs这三个查看命令的高频输出字段各有侧重:
| 命令 | 核心输出信息 |
|---|---|
| pvs | PV的设备路径、所属VG、PV大小、空闲空间 |
| vgs | VG总大小、已分配空间、空闲空间、PE数量 |
| lvs | LV名称、所属VG、LV大小、数据布局(线性或条带化) |
很多人在lvcreate时会纠结-L和-l的区别。-L 10G是指定固定大小;-l 100%FREE是按百分比使用剩余空间。做题时特别注意题干问的是“固定大小”还是“用完所有空闲空间”,这决定了你的参数。
3.3 PE大小与容量计算题:算清这笔账才能不踩坑
计算题几乎都会涉及PE和总容量的换算,比如给出VG总大小、PE大小,问能创建多少个PE、最大LV能有多大。这里有一个固定的换算逻辑:
- PE数量 = VG总容量 / PE大小
- LV容量 = PE数量 × PE大小
举例:VG总大小20GiB,默认PE大小4MiB,则PE总数为20GiB ÷ 4MiB = 5120个。如果创建LV时指定使用该VG全部空间,LV的容量就是5120 × 4MiB = 20GiB。
有一类易错题会问“为什么创建的LV比预期的VG大小略小?”答案就是VG本身的元数据也会占用少量空间,所以vgs显示的VG大小总是比一块块PV原始容量加起来略微小一点。这个细节在笔试里不算难,但在实际生产环境里,如果你卡着容量创建LV,就有可能报“空间不足”。
实操提示:
lvm的默认PE大小可以在vgcreate时用-s参数修改。比如做大量小逻辑卷的虚拟化场景,PE设小一点(如1MiB)能减少空间浪费,但PE数量增多,元数据也会变大。日常服务器用默认4MiB完全够,不用纠结。
4. 文件系统与挂载陷阱题:一句fstab写错可能开不了机
题目做到文件系统这一块,坑开始多起来了。文件系统本身不复杂,但操作起来全是细节,稍不留神就挂载失败或者重启起不来。
4.1 mkfs与挂载选择题:格式化为哪家文件系统
“为LVM逻辑卷创建文件系统”这道题,选项无非是mkfs.ext4和mkfs.xfs,偶尔会混入mkfs.vfat这类干扰项。考点在于你得知道:
- ext4:老牌Linux文件系统,支持在线扩容和缩容,万金油选择。
- xfs:RHEL系默认文件系统,擅长处理大文件和高并发读写,但只支持扩容,不支持缩容。
- btrfs:功能丰富但相对复杂,不是所有场景都合适。
如果你做的是Ubuntu服务器,日常工作环境里ext4出现频率最高,答案一般选它,除非题目明确说了“需要处理超大文件或追求高并发”才选xfs。
挂载环节的选择题要留意mount命令的参数顺序,很多新手会写成mount /dev/vg_data/lv_web /mnt,这其实没错,但如果你写成mount /mnt /dev/vg_data/lv_web,系统就会提示找不到文件系统,挂载失败。
4.2 fstab持久化配置题:用UUID还是设备名
题目给一个场景:“新增了一块数据盘,需要重启后自动挂载”,百分之百会考/etc/fstab。最稳妥、也是最容易被忽视的答案是:用UUID而不是设备名。
设备名看着方便,但问题是/dev/sdc这种名称在系统调整硬件顺序后可能会变成/dev/sdd,你在fstab里写死的设备名就失效了,重启后分区找不到,严重时会导致系统卡在emergency mode。而UUID是文件系统创建时生成的唯一标识,不管设备名怎么变,它都不变,所以fstab里用UUID最安全。
获取UUID命令:
sudo blkid然后写进fstab:
UUID="你的UUID值" /data ext4 defaults 0 2fstab格式里的六个字段顺序是:设备、挂载点、文件系统类型、挂载选项、是否dump、是否fsck开机自检。最后一列填2表示开机检查该文件系统,填0表示不检查。系统盘一般填1,数据盘填2,这个细节也很容易被选择题盯上。
4.3 权限与UUID相关辨析题
还有一道题目是问“挂载点目录的权限被忽略是什么原因”。如果你挂载一个ext4分区到某个目录,而该目录里原本有文件,mount之后原目录里的文件就被隐藏了,当你umount之后它们又冒出来。这是因为挂载就是把新的文件系统覆盖在挂载点目录之上,目录原内容并不会被删除,只是暂时不可见。
如果你是挂载NTFS或FAT分区,还需要考虑挂载权限参数。fstab里挂载Windows格式磁盘时加uid=1000,gid=1000,umask=022之类的参数很常见,不加的话普通用户可能都没权限读写,这也是考试的易错点。
注意:在对已有数据的磁盘执行
mkfs之前,一定要确认这块盘上没有你还需要的数据。格式化命令本身不会给你任何后悔药。
5. 扩容与收缩实战题:最贴近生产环境的烧脑环节
扩容是这套题的高潮,也是最考验综合能力的部分。题目往往把LVM扩容、文件系统扩展、数据安全放在一起考,模拟线上磁盘空间不足的应急场景。
5.1 在线扩容ext4逻辑卷的标准动作
题目描述一个场景:“当前逻辑卷lv_data的使用率已经到95%,需要在不卸载的情况下把空间扩到2倍。”你会先判断有没有空闲空间:
sudo vgs卷组还有剩余空间,那就可以直接在线扩容:
sudo lvextend -L +10G /dev/vg_data/lv_data sudo resize2fs /dev/vg_data/lv_data这里有一个顺序问题经常被拎出来做选择/辨析题。如果先跑resize2fs再跑lvextend,你会发现resize2fs直接报错提示设备没有多余空间;正确做法永远是先扩逻辑卷,再扩文件系统。一个容易记的口诀是:先改底层设备的容量,再通知上层文件系统用满新容量。
如果你用的是xfs文件系统,最后一条命令就得换掉:
sudo xfs_growfs /dataxfs的在线扩容命令不需要指定设备路径,直接指定挂载点即可,它会自动检测并扩展。
5.2 xfs与ext4扩容命令差异题
这类题很喜欢把ext4和xfs放在一起对比,让你判断哪个说法正确。我的建议是直接记一张对比表:
| 对比项 | ext4 | xfs |
|---|---|---|
| 在线扩容命令 | resize2fs /dev/xxx | xfs_growfs /挂载点 |
| 是否支持缩容 | 支持(但操作复杂且有风险) | 不支持 |
| 扩容时是否需要卸载 | 不需要 | 不需要 |
| 文件系统最大容量 | 较小(1EiB级别) | 极大(8EiB级别) |
| 适合场景 | 通用服务器、数据库小文件 | 大文件、视频、大规模数据 |
做题时凡是题目出现“xfs不支持缩容”“xfs用xfs_growfs扩展”,基本就是正确答案。凡是选择题里出现“resize2fs是xfs的扩容命令”这种说法,直接排除。
5.3 缩容与数据安全判断题
收缩题是区分有没有实际经验的分水岭。比如题干:“磁盘空间管理混乱,想把某个ext4逻辑卷从100G缩到80G。”
缩容逻辑卷是有的,但前提极其苛刻:
- 文件系统必须是ext4,xfs直接没戏。
- 目标分区必须已卸载,不能在线缩容。
- 必须先缩文件系统,再缩逻辑卷,顺序跟扩容正好相反。
- 缩容前必须备份数据,任何缩容操作都有数据损坏风险。
命令参考:
sudo umount /data sudo e2fsck -f /dev/vg_data/lv_data # 先检查文件系统完好性 sudo resize2fs /dev/vg_data/lv_data 80G # 先缩文件系统 sudo lvreduce -L 80G /dev/vg_data/lv_data # 再缩逻辑卷 sudo mount /data这道题的坑在于很多新手会在没有e2fsck -f直接缩容,resize2fs会提示文件系统有错误而拒绝操作,这其实是保护机制,千万别加-f强行跳过检查。网上有些教程会让你跳过检查直接缩,那是拿数据在赌。
实操心得:缩容我是能躲就躲,即使按照上面流程走一遍,中途断电或者命令中断也可能导致文件系统损坏。平时规划好VG空间,别把缩容当常规操作。
6. 备份恢复综合题:最后防线不能只在纸上谈兵
备份这一块在练习里看着像是在考验命令,其实真正考的是你面对数据丢失风险时的判断力。这部分题目不多,但每一道都值得认真做。
6.1 备份工具选型逻辑题
工具选型的题,核心不在于背命令,而在于理解不同备份方式的适用场景。常见的有这么几类:
- 简单文件级备份用
tar,能把目录打包压缩,恢复快速,适合配置和数据量不太大的场景。 - 整盘克隆用
dd,适合需要原样复制分区或磁盘的场景,比如迁移系统盘、制作模板镜像。 - 数据库备份通常用其自带工具,例如
mysqldump或pg_dump,它们能保证逻辑一致性,不能直接拿tar去打包数据目录。
题目如果让你从以上方式里选一个适合“备份整个系统盘到另一块磁盘”,那大概率是dd,因为dd能做到块级别一模一样地复制,包含引导记录。
6.2 dd备份与tar备份的对比辨析题
有一道对比题直接问:“下列哪种方式适合定期备份网站目录?”答案不是dd,而是tar。原因很直接:
dd是块级备份,备份整块盘或整个分区,哪怕里面大部分空间是空的,也照样逐块复制,备份文件巨大且耗时。tar是文件级备份,只需要打包有数据的文件,速度快、体积小,且方便增量备份和异地传输。- 对网站这类文件数量多但单文件不大的场景,
tar明显更合适。
需要记住的tar备份与恢复命令:
# 备份 sudo tar -czvf /backup/www_$(date +%F).tar.gz /var/www # 恢复 sudo tar -xzvf /backup/www_2024-01-01.tar.gz -C /6.3 灾难恢复流程排序题
最后一道综合题的经典考法就是“系统无法启动了,你有之前做的dd镜像,如何恢复”。你需要按顺序排出步骤:
- 使用Ubuntu Live CD或安装U盘启动。
- 把故障系统盘和存放镜像的备份盘都接上。
- 确认设备路径,比如系统盘为
/dev/sda,备份盘为/dev/sdb。 - 执行
dd if=/dev/sdb/backup.img of=/dev/sda bs=4M status=progress将镜像写回系统盘。 - 同步完成后重启并移除启动介质,验证系统是否正常。
这里有个极易被忽略的考点:dd的if是输入文件(也就是源),of是输出文件(也就是目标),两个参数写反等于把当前磁盘覆盖掉。做题时千万看清“把镜像恢复到系统盘”这句话的方向,镜像永远是if,要恢复的盘永远是of。
用dd做整盘备份还有一个重要纪律:备份前源分区最好是卸载状态或只读挂载,否则文件系统还在写入,备份出来的镜像可能不一致。线上服务器没法随意卸载时,优先考虑用LVM快照再备份。
7. 答案与思路解析:这些选项为什么对、为什么错
把整张练习卷的参考答案和思考过程汇总一下。我只讲核心逻辑,不逐行罗列所有命令,方便你对照自己的作答情况查漏补缺。
7.1 选择题速查表
| 题目关键信息 | 正确答案 | 错误选项典型特征 |
|---|---|---|
| 查看磁盘分区树状信息 | lsblk | 没有挂载信息或显示混乱 |
| LVM最小存储单位 | PE | 误选成扇区或块 |
| 扩容ext4逻辑卷命令 | lvextend + resize2fs | 只写lvextend或只写resize2fs |
| xfs扩容命令 | xfs_growfs /挂载点 | 写成resize2fs或lvextend |
| 保证重启后挂载生效 | 修改/etc/fstab | 仅使用mount命令 |
| 查看UUID | blkid | 误写df -h只能看到设备名 |
| 恢复tar备份 | tar -xzvf 备份包 -C 目标目录 | 丢失-C参数导致恢复到当前目录 |
| dd备份原盘 | 源盘设为if,目标盘设为of | if和of写反 |
7.2 操作题参考答案:完整的LVM搭建命令
给一个新磁盘做LVM并挂载到/data,标准命令序列如下:
# 1. 创建物理卷 sudo pvcreate /dev/sdb # 2. 创建卷组 sudo vgcreate vg_data /dev/sdb # 3. 创建逻辑卷,使用全部剩余空间 sudo lvcreate -n lv_data -l 100%FREE vg_data # 4. 创建文件系统 sudo mkfs.ext4 /dev/vg_data/lv_data # 5. 挂载 sudo mkdir -p /data sudo mount /dev/vg_data/lv_data /data # 6. 写入fstab实现开机自动挂载 UUID=$(sudo blkid -s UUID -o value /dev/vg_data/lv_data) echo "UUID=$UUID /data ext4 defaults 0 2" | sudo tee -a /etc/fstab这道题的重点是:命令顺序不能乱,创建LV之后的mkfs千万别写错设备路径,fstab配置里的UUID值建议用命令自动提取,别手抄,手抄有抄错长UUID的极大风险。
7.3 计算题推理过程示例
题目给VG容量100GiB,PE大小4MiB,问最大可创建的LV容量。
- 把单位统一:100GiB = 102400MiB。
- 计算PE数量:102400 ÷ 4 = 25600个。
- 创建LV占全部PE,容量 = 25600 × 4MiB = 100GiB。
再进阶一点,如果VG里已经有一个20G的LV,剩余空间还能创建多大LV?答案是80G左右,但严格来说会比80G略小,因为VG还有元数据开销。这就是计算题的套路:数字本身不难,难的是要不要把元数据损耗算进去。
8. 易错点与备考建议:亲手踩过的坑你就不用再踩了
整套题做下来,有几个错误几乎是普遍性的,我自己的学员也经常在这些地方翻车,帮你集中提个醒。
8.1 高频丢分点集中盘点
第一,PE大小和“块”的概念混淆。有人会把PE理解成文件系统的block大小,这两个完全是不同层次的东西。PE是LVM的分配单元,block是ext4文件系统的存储单元,做题时一旦混用,概念题必错。
第二,扩容顺序记反。lvextend和resize2fs的顺序是很多人的重灾区。记住一句话:底层设备没变大之前,上层文件系统怎么resize都是白搭。xfs和ext4的命令不同,也是单选题最爱挖坑的地方。
第三,看到“重启自动挂载”就只写mount命令。mount是即时生效,fstab才是持久化,两者缺一不可。题目只要提到“重启后”,你必须条件反射想到/etc/fstab。
第四,fstab里用设备名而不是UUID。考试和实际工作都建议直接用UUID,部分旧的IDE设备名在系统换硬件后位置会变,只有UUID是稳定标识。
第五,缩容时跳过e2fsck。有些人贪快,省略e2fsck检查直接resize,导致文件系统元数据错乱。缩容操作宁可慢,也不可跳过检查步骤。
8.2 实操建议:用什么环境练手最靠谱
我强烈建议你别在实体机上直接做这套练习题,而是开一台虚拟机来操作。虚拟机能随时回滚快照,建错逻辑卷、删错分区都能恢复,特别适合反复练习扩容缩容这类高风险操作。
熟练度目标是这样的:看到一道操作题,能在30秒内写出第一步用什么命令,10分钟内完成创建物理卷到挂载的全流程,中间不用翻笔记。如果达不到,说明基础还不牢,重新刷一遍第2章再回来做题。
如果你手头有多余的U盘或小容量硬盘,也可以在虚拟机里给测试机挂载多块虚拟磁盘,模拟“多块盘做一个卷组”的真实场景,这样练习效果比只拿一块盘要好得多。我个人的经验是:把每道题在虚拟环境里至少跑三遍,第一遍看着笔记做,第二遍合上笔记做,第三遍故意制造几个故障(比如删掉VG再重建),这样才算真正吃透。
最后多分享一个细节:练习LVM的时候,养成做完一步就执行一次pvs、vgs、lvs的习惯,别等全部做完再一次性查看。这样做的好处是,哪一步出错能立刻定位,对排查问题非常有帮助。这套练习题本身就是按这个思路设计的,你顺着做下来,能力提升会很明显。