dd 出来的 Linux 系统,启动特别慢怎么办?

一块 320GB 的硬盘上,安装了 Debian/LXDE。这块盘即将移作它用,但是 Debian 里有一些配置好的东西不忍丢弃,决定将之备份出去。手里有两三块小容量的 m.2 的 SSD,凑巧还有 SATA 转接硬盘盒,正是好去处。

用 Ubuntu Live USB Stick 启动,先用 resize2fs 把文件系统从 40GB 缩至 10GB(没办法,SSD 容量是 16GB 的),又用 GParted 把分区大小也调整至 10GB,然后用 dd 对刻了大概 12GB。重启,不能引导。又用 DiskGenius 把分区做了激活,检查分区表无误后写回 SSD。再启动,仍然失败,机器甚至认为其上并无任何可以引导的系统。

再次用 Ubuntu Live USB Stick 启动,此时 SSD 盘为 sda,到命令行下直接 sudo grub-install --boot-directory=/media/xxx/boot-dir-path /dev/sda 往 SSD 上强行安装了一遍 Grub(那个 --boot-directory 是目标系统的 boot 目录在当前系统中被挂载就绪的路径)。再次启动,等待良久后成功出现登录界面,输入登录凭证后等待良久出现桌面。

上述的两次等待,时长超出想象,简直不是 SSD 应该有的表现。第一嫌疑的交换分区,因为原系统时是配置了交换分区的,但是 dd 的时候直接舍弃了。于是一通命令如下:

并且把 /etc/fstab 里把相应行写成了 /debswap swap swap defaults 0 0

再启,未有显著效果。但注意到文本模式时有一句话,大概是“Gave up waiting for suspend/resume device”。据此查到一篇文档(https://lists.debian.org/debian-user/2017/09/msg00866.html),果然,/etc/initramfs-tools/conf.d/resume 中的磁盘 UUID 需要更新,修改后保存,并执行了 sudo update-initramfs -u(同时还学习到,如果系统内没有 blkid 命令的话,可以用 lsblk -f)。这次又重启,就完全好了,速度非常快。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注