Linux

Linux NAS 硬盘更换过程

Posted on 2021-08-22,3 min read

可能涉及到的命令:

parted(gparted命令行版)
fdisk
gdisk   // 可以很轻松修复分区问题
dd
pv
btrfs filesystem ......

插入新硬盘

不知道为什么外置USB不认。

查清楚分区号

通过在root用户下fdisk -l查清楚目前的分区号。

使用迁移命令

注意:dd或>命令也会拷贝uuid过去,意味着,/dev/sda1的uuid和/dev/sdb5的uuid是一样的。

uuid是一个唯一的标识符,因为类似/dev/sda这样的映射点,在新设备加入的时候,可能会生成新的映射点,比如原来系统里是/dev/sda现在变成了/dev/sdb等等,所以一般情况下,在/etc/fstab里写自己规则的时候,都是用uuid而非映射点。

可以不修改新硬盘分区的uuid,也就省去了修改/etc/fstab或者/boot/grub/grub.conf的麻烦。

选择1:使用>命令克隆并用pv显示进度

https://askubuntu.com/questions/523037/how-would-i-speed-up-a-full-disk-dd/523043#523043

# 必须要root权限
apt install apt
pv < /dev/sde > /dev/sdc

选择2:执行的dd命令

我的根目录所在的分区是/dev/sdb5,新硬盘划分的是/dev/sda1

dd if=/dev/sdb5 of=/dev/sda1

由于dd命令没有展示中间过程,因此使用另一条命令来让他输出中间过程:

watch -n 5 killall -USR1 dd

修复设置

(可选项)

迁移linux系统到新硬盘

拷贝boot分区内容

更新硬盘信息

修改uuid,添加boot标记

修复grub

硬盘空间调整

ArchLinux、SUSE文档的btrfs等文件系统文档非常实用。

https://documentation.suse.com/zh-cn/sles/15-SP1/html/SLES-all/cha-resize-fs.html

如果新旧硬盘容量不一致,先用 partedresizepart修复扇区数量使用。

然后对btrfs等文件系统进行扩容。(注意,比如xfs等文件系统不支持缩小容量shrink)

btrfs filesystem resize max /srv/dev-disk-by-label-LVM

将原来的硬盘重新插入

因为新旧硬盘lableuuid一致,重新插入服务器的时候可能会替换新硬盘的挂载。

可以用 fdisk 删除分区表暂时解决,但是并不彻底。需要格式化或者用OMV的抹除功能,或者更改uuid、label也可能解决该问题?

下一篇: 游戏如何为教育发挥作用——复旦严峰教授对话腾讯副总裁马晓轶→