Answers:
我建议不要使用dd
。它只是按扇区复制一个哑扇区,这意味着如果目标分区较小,它将失败,并且浪费大量时间复制可用空间;如果目标分区较大,则直到您运行该附加空间才可用resize2fs
扩展文件系统。
最好从活动CD上执行此操作,因为如果在修改文件时复制文件,则会导致损坏的结果。
格式化ssd并安装新的ssd分区和原始的根分区,然后运行sudo cp -ax /media/old-partition/* /media/new-partition
,其中old-partition和new-partition替换为其实际的安装点。这将复制每个文件,从而保留所有权,权限和时间戳。
sudo grub-install --root-directory=/media/new-partition /dev/SSD_DEVICE
在为new-partition和SSD_DEVICE替换正确的值之后,然后运行。这将安装grub,使磁盘可启动。
一旦你重新启动(确保你的BIOS配置为启动从SSD代替旧的驱动器),请确保你通过检查的输出运行从SSD而不是从旧的驱动器df
和/或mount
,你应该很好地吹走了旧的分区。
哦,您将需要/etc/fstab
在复制和更新根分区的UUID以匹配新的SSD分区而不是旧的SSD分区的UUID之后,在新分区上编辑文件。您可以通过运行找到该UUID sudo blkid
。
编辑:在上面的副本中添加了/ *,但需要编辑的长度超过6个字符。现在是101个字符!
该命令:
dd if=/dev/sdb1 of=DEVICE_PATH_OF_SSD_DRIVE
应该可以将/
分区克隆到SSD驱动器。
编辑:这仅在您的分区与驱动器大小相同时才起作用。如果它们的大小不相同,则可以使用partimage:
partimage -z0 -d save /dev/sdb1 clone.partimg
partimage restore DEVICE_PATH_OF_SSD_DRIVE clone.partimg
rm clone.partimg
需要注意的是,此方法需要在驱动器上有足够的空间来容纳包含的所有内容的映像/
。如果您有超过10GB的可用空间,则应该没问题。否则,您可以使用-z1
而不是-z0
压缩图像。要获得更大的压缩效果,请使用-z2
。另外,partimage不支持ext4文件系统。
完成此操作后,应挂载SSD并检查数据是否已正确复制:
$ mkdir /tmp/ssd
$ sudo mount -t ext4 DEVICE_PATH_OF_SSD_DRIVE /tmp/ssd
$ ls /tmp/ssd
bin dev initrd.img lost+found opt sbin sys var
boot etc initrd.img.old media proc selinux tmp vmlinuz
cdrom home lib mnt root srv usr vmlinuz.old
替换为ext4
用于的文件系统/
。
您可能需要在此驱动器上安装GRUB引导加载程序:
sudo grub-install DEVICE_PATH_OF_SSD_DRIVE
然后,您将需要编辑/etc/fstab
文件,以将其替换/dev/sdb1
为挂载到的条目中SSD驱动器的设备路径/
。(sudo $EDITOR /etc/fstab
)
请按照以下说明进行操作,直到此答案有几个建议为止。我不是这些事情的专家,所以我可能错过了一些重要信息。任何发现此缺陷的人,请添加评论以解释这些缺陷。您应该采取此类预防措施,因为如果出现问题,可能会导致计算机无法启动。
首先阅读如何迁移,是否有一种简单的方法可以将操作系统从一个硬盘驱动器转移到另一个硬盘驱动器?。
从您的SSD引导并将以下行添加到/etc/fstab
(仅是绑定):
/media/slowhd/home /home none rw,bind 0 0
开始mount -a
使更改生效。
提示:请勿mount /dev/yourhd /home
因为失去了将更多目录移动到旧硬盘的灵活性。
一种更技术性的解决方案是使用LVM(逻辑卷管理器)。