目录
1.参考
2.准备
3.分区
4.拷贝
4.1 /boot拷贝
4.2 /home拷贝
4.3 / 拷贝
4.3.1 不用拷贝重新新建的文件夹
4.3.2 直接拷贝的文件夹
4.3.3 稍微复杂一些的文件夹拷贝
5.grub
6.文件系统挂载
7.修复引导
1.参考
主要参考https://www.jianshu.com/p/478567d8b14a,从中截取操作部分,添加一些备注,修改一些错误。
2.准备
笔记本:Acer TravelMate X483G-SMB 这款笔记本比较坑,在BIOS只能检测到接内置硬盘那个口的硬盘,要想迁移ubuntu到SSD还得先将固态放到光驱处当成操作系统内可访问的设备,根据本文操作后,再将SSD接入到内置硬盘口处。
将内置硬盘放到光驱口,在文章最后部分修复引导后,grub引导可以找到硬盘里的系统。
3.分区
先装图形化分区工具
sudo apt-get install gparted
这里不详细记录怎么操作的,只把结果贴上,这里显示sda其实是因为这幅图是迁移系统后查看的分区(我把SSD放到主硬盘口了),实际上应该是sdb,详细见参考。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSPNR1T0EkeOJTUU10dVNDTwYVbiVHNHpleO1GTulzRilWO5xkNNh0YwIFSh9Fd4VGdsATMfd3bkFGazxyaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yN2QDOyUTMzAzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
相比参考多了swap区,不知道哪种方式更好。
4.拷贝
4.1 /boot拷贝
sudo mount /dev/sdb2 /mnt
sudo cp -rf -a /boot /mnt/boot
sudo rm -rf /mnt/boot/grub#之后会重建
sudo umount /mnt
4.2 /home拷贝
sudo mount /dev/sdb5 /mnt
sudo cp -rf -a /home /mnt
sudo umount /mnt
4.3 / 拷贝
sudo mount /dev/sdb3 /mnt
4.3.1 不用拷贝重新新建的文件夹
sudo mkdir cdrom dev media proc sys tmp
sudo chmod 777 tmp
4.3.2 直接拷贝的文件夹
#单个文件夹拷贝,方便查找出错位置
sudo cp -rf -a /bin /mnt
sudo cp -rf -a /etc /mnt
sudo cp -rf -a /lib /mnt
sudo cp -rf -a /lib32 /mnt
sudo cp -rf -a /lib64 /mnt
sudo cp -rf -a /opt /mnt
sudo cp -rf -a /sbin /mnt
sudo cp -rf -a /snap /mnt
sudo cp -rf -a /srv /mnt
sudo cp -rf -a /usr /mnt
sudo cp -rf -a /var /mnt
4.3.3 稍微复杂一些的文件夹拷贝
拷贝/run文件夹,但/run/user/ 下的文件有些是FUSE文件系统,详见https://www.zhihu.com/question/25145286?sort=created。里面说“你 su 成它认可的用户就可以”。
先再/mnt下新建run,然后将/run文件夹下除了/run/user/之外的文件:
ls /run | grep -v "^user" |xargs -i sudo cp -rf -a /run/{} /mnt/run
然后拷贝/run/user/121
sudo cp -rf -a /run/user/121 /mnt/run/user
然后拷贝/run/user/1000
sudo su
su staillyd #staillyd为我的用户名
cp /run/user/1000 /mnt/user
先不要卸载/mnt,在第5步grub里仍然要挂载SSD里的/分区
5.grub
#x64ubuntu也是i386-pc
sudo grub-install --target=i386-pc --root-directory=/mnt --recheck --debug /dev/sdb
sudo mv /mnt/boot/grub /mnt/grub
sudo rm -rf /mnt/boot
6.文件系统挂载
#查看各个分区的地址
sudo blkid
sudo gedit /mnt/etc/fstab
我的文件:
7.修复引导
#GRUB Rescue模式(第一次从拷贝的ubuntu系统启动会自动进入该模式)
SET prefix=(hd0,gpt2)/grub/ #SSD中/boot/grub的文件夹
insmod normal
normal #进入grub正常模式
#注意vmlinuz-4.15.0-54-generic、initrd.img-4.15.0-54-generic两个文件
#是SSD中/boot/grub文件夹下有对应版本号的文件
#root=/dev/sda3 中sda3是指SSD中/目录所在分区,我设的是第三块分区
grub> linux (hd0,gpt2)/vmlinuz-4.15.0-54-generic ro root=/dev/sda3 #设置启动的 Linux 内核
grub> initrd (hd0,gpt2)/initrd.img-4.15.0-54-generic #设置虚拟内存
grub> boot #启动 SSD Ubuntu
#在进入SSD的Ubuntu系统后重建grub引导
$ sudo update-grub
$ sudo grub-install /dev/dsa