CentOS Linux 将 /var 挂载在新增磁盘上
步骤 1:进入单用户模式
-
重新启动系统。
-
在启动时进入 GRUB 菜单。你可以通过按
Shift(在某些系统上是Esc)键来显示 GRUB 菜单。 -
选择你要启动的内核(一般是默认的那个),然后按
e键进入编辑模式。 -
找到启动行(以
linux或linux16开头的那行),并在行的末尾添加single或1,表示启动单用户模式。例如:
linux16 /vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/centos-root ro single -
按下
Ctrl + X来启动系统。系统会进入单用户模式,此时你将只拥有 root 权限,系统不再启动网络和大部分后台服务,避免对
/var目录的写操作。
步骤 2:确认新硬盘识别
在单用户模式下,你首先需要确认新硬盘是否被系统识别。你可以使用以下命令查看:
lsblk
这将显示所有磁盘和分区的列表。如果你看到新硬盘(例如 /dev/sdb 或 /dev/sdc),就可以继续进行下一步。
步骤 3:分区和格式化新硬盘
如果新硬盘还没有分区,或者你还没有格式化它,你可以使用 fdisk 来分区,并使用 mkfs 格式化:
分区
fdisk /dev/sdb
然后按以下步骤操作:
- 输入
n创建新分区。 - 输入
p选择主分区。 - 输入分区编号(通常是
1)。 - 输入分区的起始和结束位置,默认即可。
- 输入
w保存并退出。
格式化为 ext4 文件系统
mkfs.ext4 /dev/sdb1
步骤 4:挂载硬盘到临时目录
在系统进入单用户模式后,你可以将新硬盘挂载到一个临时目录,比如 /mnt/new_var:
mkdir /mnt/new_var
mount /dev/sdb1 /mnt/new_var
步骤 5:迁移 /var 数据到新硬盘
现在你可以将 /var 目录的内容迁移到新硬盘上。使用 rsync 可以保留文件的权限、符号链接等信息,并确保数据一致性:
rsync -avx /var/ /mnt/new_var/
步骤 6:更新 /etc/fstab 配置文件
为了确保系统重启后能自动挂载新硬盘到 /var 目录,你需要编辑 /etc/fstab 文件,将新硬盘的挂载信息添加进去:
vi /etc/fstab
添加以下行,替换 /dev/sdb1 为你的硬盘设备名称:
/dev/sdb1 /var ext4 defaults 0 2
步骤 7:卸载临时挂载并挂载到 /var
现在可以卸载临时挂载目录并将新硬盘挂载到 /var 目录:
umount /mnt/new_var
mount -a
此时,新硬盘应该已经挂载到 /var 目录了。
步骤 8:验证挂载
使用 df -h 命令来确认新硬盘是否成功挂载到 /var:
df -h
你应该看到类似于下面的输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 100G 2G 98G 2% /var
步骤 9:重新启动系统
最后,重新启动系统以确保一切配置生效:
reboot
系统启动后,你的新硬盘应该已经挂载到 /var 目录,且不再受其他进程的干扰。
总结
通过单用户模式来实现 /var 目录的数据迁移和挂载,最大程度上避免了在迁移过程中由于系统进程写入 /var 导致数据丢失的风险。在单用户模式下,你可以安全地执行所有操作,确保硬盘挂载顺利完成。

浙公网安备 33010602011771号