Day-4 Linux 从入门到精通:磁盘管理、LVM与YUM源搭建实操笔记

前言

这是我的第四篇Linux实验笔记,这次内容主要围绕磁盘分区备份恢复、LVM逻辑卷基础、YUM软件源配置、分区格式化与永久挂载、HTTP本地源搭建这几块展开。

操作下来又踩了好几个熟悉的坑,比如fstab配置不对直接开不了机、partprobe总跳光驱警告、阿里云源偶尔抽风连不上,都整理在对应位置了,方便大家避坑。实验环境还是CentOS 7,用server2和server3两台虚拟机配合完成。


一、磁盘分区表备份与恢复

备份MBR分区表(dd命令实操)

MBR分区表存在磁盘的第一个扇区,总共就512字节,一旦损坏所有分区信息直接没了,所以备份一下还是很有必要的。用dd命令直接读取扇区保存成备份文件就行。

# 把sdb的MBR分区表备份到当前目录,命名mbr.bak
dd if=/dev/sdb of=mbr.bak bs=512 count=1
# 查看备份文件,确认大小正好512字节
ls -lh mbr.bak

小提醒:备份文件最好存到别的磁盘上,别和源文件放同一块盘,不然盘坏了备份也一起没了。

【插图:第2张】

模拟分区丢失故障

用fdisk工具删掉一个分区,模拟分区表损坏的场景,方便后面测试恢复效果。

fdisk /dev/sdb
# 输入 d 选择删除分区,选分区号 2
# 输入 w 保存修改退出

删完用lsblk一看,sdb2确实没了。这里提醒一下,输w之前一定要再三确认,保存后分区表就直接生效了。

【插图:第3张】

从备份文件恢复分区表

把之前的备份文件写回磁盘,就能还原分区表信息:

dd if=mbr.bak of=/dev/sdb bs=512 count=1

写完刷新一下分区表,再用lsblk查看,sdb2就完好无损地回来了。

踩坑:partprobe的光驱警告不用管

每次刷新分区表都会弹 Unable to open /dev/sr0 read-write 这个黄字警告,一开始我还以为操作错了。后来才搞明白,这是光驱设备的只读提示,和我们操作的磁盘半毛钱关系都没有,完全不用管,不影响分区操作。

【插图:第5张】


二、LVM逻辑卷基础配置

LVM最大的好处就是可以灵活调分区大小,不用像普通分区那样删了重建,生产环境用得特别多。基础操作分三步:PV物理卷、VG卷组、LV逻辑卷,这次我们先搞定前两步。

创建PV物理卷

先把整块磁盘初始化成LVM能用的物理卷:

pvcreate /dev/sdb

执行的时候会提示检测到dos签名,输入y擦除就行。这是因为这块盘之前分过区,残留了旧的分区表信息,擦了不影响用。
创建完用 pvs 命令就能看到所有物理卷的概览信息。

创建VG卷组并查看详情

把初始化好的PV加到卷组里,统一管理存储空间:

# 创建名叫vg0的卷组,用/dev/sdb这块物理卷
vgcreate vg0 /dev/sdb

查看卷组有两个常用命令:

  • vgs:精简版,一眼能看到总容量、剩余空间
  • vgdisplay vg0:详细版,能看PE大小、总PE数、UUID这些参数

【插图:第1张】


三、YUM软件源配置与管理

YUM是CentOS 7装软件的核心工具,源配得好不好直接影响装软件的速度和成功率。这次我们配了本地源和网络源,也碰到了典型的网络问题。

编写本地repo配置文件

先进到源配置目录,新建自己的repo文件:

cd /etc/yum.repos.d/
vim local.repo

一个合格的repo文件要包含源ID、名称、源地址、是否启用、校验方式这几个核心字段。

清理缓存与踩坑记录

改完源配置必须刷新缓存才能生效:

yum clean all && yum makecache

踩坑实录:这次操作的时候阿里云镜像源直接报了 Connection refused,连不上。属于镜像站临时抽风或者网络波动,不用慌,yum会自动尝试别的节点,只要本地源没问题就不影响内网用。

【插图:第4张】

验证源可用性

yum repolist

执行完就能看到所有启用的源和对应的软件包总数,除了系统自带的base、extras、updates,后来装的epel或者第三方源也都会显示在这里。

【插图:第6张】

最后装个小工具测试一下,能正常安装就说明源完全没问题:

yum install -y tree

【插图:第8张】


四、分区格式化与永久挂载

分好区的盘得格式化文件系统、挂载到目录上才能用。临时挂载重启就没了,想永久生效就得写到fstab里。

ext4格式化分区

给分区格式化成ext4文件系统:

mkfs.ext4 /dev/sdb1

执行过程中系统会自动建inode、块组、日志这些结构,跑完就可以挂载了。

临时挂载与验证

先建个挂载目录,再用mount命令挂上:

mkdir /sdb1
mount /dev/sdb1 /sdb1
# 查看挂载结果
df -h

从df -h的输出里能看到分区总大小、已用空间和挂载点,确认挂载成功。

【插图:第7张】

配置fstab开机自动挂载

编辑fstab文件,加上挂载条目:

vim /etc/fstab

标准格式是:设备路径 挂载点 文件系统类型 defaults 0 0
写完一定要执行 mount -a 验证一下,没报错就说明写对了,下次开机自动就挂上了。

重点提醒:fstab写错的后果

这里必须划重点!这行一旦写错,比如路径错了、格式不对,下次开机直接进紧急模式,就是上次我们修了半天的那个故障。所以改完一定要用mount -a校验,确认没问题再重启,血的教训。

【插图:第10张】


五、HTTP方式本地YUM源搭建

把本地源通过HTTP服务发布出去,局域网里别的机器就能共用这个源,不用每台都挂光盘配本地源了,多机环境特别实用。

安装依赖工具

先装两个必要的包:

yum install -y createrepo httpd
  • createrepo:用来生成yum源的索引数据文件
  • httpd:提供网页访问服务

启动HTTP服务与环境准备

# 启动httpd并设开机自启
systemctl enable --now httpd
# 实验环境临时关防火墙,方便测试
systemctl stop firewalld
# 临时关闭SELinux
setenforce 0

说明:实验图省事直接全关了,生产环境不能这么干,得通过开端口、配SELinux规则来实现。

【插图:第9张】

访问验证效果

在浏览器输服务器IP,访问对应的源目录,能正常看到所有rpm包列表就算搭成了。客户端机器配repo的时候,把baseurl填成这个HTTP地址就能用。

【插图:第12张】


六、进程树查看工具pstree

pstree这个命令特别好用,能以树形结构展示所有进程的父子关系,比ps命令看着直观多了,排查进程问题的时候很方便。

这个命令在psmisc包里,得先装:

yum install -y psmisc

直接执行 pstree 就能看到完整的进程树,最顶层是systemd,往下分支着各个系统服务和用户进程,谁是谁的子进程一眼就能看明白。

【插图:第11张】


实验总结

这次实验主要就是磁盘管理和软件源两大块内容,复盘几个关键点:

  1. MBR分区表备份成本极低,512字节就能救回所有分区信息,动磁盘之前建议先备份一份
  2. LVM是弹性管磁盘的基础,PV→VG→LV三层结构要理清楚,后面扩容缩容都靠这个体系
  3. YUM源是装软件的基础,本地源适合内网离线用,HTTP源适合多机共享,各有适用场景
  4. fstab改完一定要mount -a校验,写错直接开不了机,这个坑踩过一次就一定要记牢
  5. 排查进程问题的时候,pstree看父子关系特别直观,小工具大用处

总的感觉就是,磁盘类操作容错率特别低,改分区、改fstab之前都得三思;软件源的问题大多是网络或者格式问题,对着报错逐行查基本都能很快解决。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐