SSD 迁移记
由于某些需求,决定上SSD,提高一下硬盘读写速度。上二手东买了三星(SAMSUNG) 860 EVO
最初的想法是作为数据盘使用,即操作系统还是跑在机械硬盘上,仔细一思考,还是折腾
一下,要不实在是有些浪费,事实证明,折腾是值得的,感觉就想飞一样。
首先查看一下原始的情况:
1 | $ mount |
当然首先要把SSD处理一下,安装一下 gparted 图形化界面很好用。建个分区表,选择
gpt,分个区,/dev/mapper/fedora-root 大小为50G,先分个50G的分区,剩下的全部给
另外一个分区,格式化为 ext4。操作完成后,用fdisk 查看一下:
1 | $ fdisk -l |
将原来系统的 / dd 到新的SSD,
1 | dd if=/dev/mapper/fedora-root of=/dev/sdb1 bs=1M |
用新的root 把系统启动起来,reboot 后进入引导界面,按e 编译,找到
root=/dev/fedora/root 改为 root=/dev/sdb1 按 ctrl+x 启动,一会儿就进系统了,速度
提升很大。现在需要把 grub.cfg 更新一下,因为我们是手动修改进入了新的根,如果重启
的话,还是会使用老的根,因为grub.cfg 里就是这么写的。
要生成新的grub.cfg 需要使用grub2-mkconfig, 命令很简单
$ grub2-mkconfig -o /boot/grub2/grub.cfg
执行后重启,md 怎么又进到老根去了。这里折腾了好久,第一个问题fedora 的内核出bug
了,每次重启都要等待非常久的时间,所以需要升级,所以正确的顺序应该是先升级系统再
dd,没办法升级系统重新 dd
解决了fedora 内核的问题后,发现还是进不到新根。只要认真地看 grub.cfg, grub2 改动
挺大,不太熟悉了。
1 | # |
启动有两个信息,确实是使用 grub2-mkconfig 生成,/etc/default/grub 里有配置
1 | $ cat /etc/default/grub |
grub2-mkconfig 里用这句
1 | GRUB_DEVICE="`${grub_probe} --target=device /`" |
执行查看结果, 发现正确
1 | $ grub2-probe --target=device / |
可是为什么不能正确启动呢,看看生成的 grub.cfg 文件
linux16 /vmlinuz-4.17.2-200.fc28.x86_64 root=UUID=290a98e3-7937-49db-a971-4d0e49567cf0
使用的是 UUID,并不是 /dev, 查看一下各分区的 uuid
1 | # blkid |
由于dd 的原因,/dev/sdb1 和 /dev/mapper/fedora-root 的 UUID 居然是相同的。第一个
想法是把/dev/sdb1 的 UUID 给改了。放狗搜发现有下面的方法
1 | $ uuidgen |
可是tune2fs 时报错,死活改不过来。lzx 提示可以看看如何是grub.cfg 不使用uuid,
发现有个参数 GRUB_DISABLE_UUID=true, 在 /etc/default/grub 加上这行,重新生成
grub.cfg 重启,一切 OK 进入到SSD 的新root
有的系统上的参数可能不太一样,ubuntu 系统里这个参数好像的是 GRUB_DISABLE_LINUX_UUID=true
可能需要确认一下。
- EOF
SSD 迁移记