如何将Ubuntu转移到SSD,但保留在硬盘上?
我想将现有的Ubuntu Trusty(14.04.1)系统(包括从PPA安装的应用程序)转移到SSD。 我想在硬盘上保留现有的主目录。 什么是最好的方法,最好是不涉及重新安装Ubuntu的方法?
从实时媒体启动时,可以分为3个步骤:
-
将操作系统数据复制到新驱动器
在开始之前,请确保新驱动器具有正确的分区表 。 GPT(主要)用于EFI,并且需要为引导加载程序提供特殊分区。 不要忘记在MBR安装上将新操作系统分区标记为可引导。
从实时媒体使用rsync应该是复制文件最实用的解决方案:
sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
-
将引导加载程序安装到新驱动器
sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
/dev/sdX
应更改为新驱动器的实际设备名称。如果你有EFI安装而不是MBR,你应该确保你在EFI模式下启动了实时媒体,运行
sudo apt-get install grub-efi-amd64
,在新驱动器上创建了一个EFI系统分区(ESP) ESP安装到/media/$mountpoint_of_new_drive/boot/efi
(或使用--efi-directory
选项,查看grub-install联机帮助页 )。 -
更新配置
您需要在
/etc/fstab
更新/etc/fstab
的UUID。 通过执行sudo blkid /dev/sdXY
获取新操作系统分区的UUID,复制不带引号的UUID,运行sudo nano /media/$mountpoint_of_new_drive/etc/fstab
并将现有的UUID替换为如下所示的行:# / was on /dev/sda2 during installation UUID=a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc / ext4 errors=remount-ro 0 1
但在更换线之前,您可能需要按Ctrl + K和Ctrl + U复制它。 由于您的家仍在旧驱动器上,旧的UUID应该是正确的,您只需要将挂载点更新为
/home/$your_username
(将$your_username
替换$your_username
用户主目录的名称)和一些选项(注意最后时间relatime,acl
和2
):# Mountpoint for home or user partition UUID=063a996a-0303-42b2-b719-af920fd105fa /home/$your_username ext4 relatime,acl 0 2
使用Ctrl + O保存并使用Ctrl + X退出。
你应该考虑将各个主目录移动到一个单独的
home
-partition (它只是一个分区,用户的主目录在fstab
挂载为/home
,你可以再次使用sudo rsync -av
来复制数据,请参阅如何移动我的/主目录到另一个分区,如果它已经是/分区的一部分? ),因为你必须以这种方式为每个用户创建一个新行。如果您在SSD上创建了新的交换分区 ,则还必须为此更新UUID:
# SSD swap UUID=b7c315cb-cf89-463b-888a-185a1faa8250 none swap sw 0 0
此外,您需要在
/media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resume
sudo update-initramfs -k all -u
交换分区的UUID,在第一次从新驱动器启动后运行sudo update-initramfs -k all -u
重新启动以使hibernate再次运行。请记住,对于EFI安装,也要在fstab中更新ESP的挂载点。
看起来很复杂,但做起来很简单,难以详细描述。
故障排除
grub-install以某种方式无法与UEFI一起安装
提示:当GRUB说一些关于i386-pc
东西时,你可能忘了运行sudo apt-get install grub-efi-amd64
。
- 你复制了根(
/
)分区的内容,包括/boot
,对吧? -
你复制了ESP的内容? 如果你没有这样做。
-
在新ESP上编辑
EFI/ubuntu/grub.cfg
。 如果不相应地更改此示例中的hd0,gpt2
部分,则用新根分区的UUID替换UUID应该足够了。 这是文件内容通常如下所示:search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
-
-
从旧安装启动,运行
sudo update-grub
,os-prober应在其他分区上找到新安装并添加GRUB条目。- 启动这个新条目。
- 您现在应该从SSD启动,再次运行
sudo update-grub
以更新和修复SSD上的GRUB配置。
- 运行
efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu"
将新的/传输安装的引导加载程序添加为UEFI NVRAM的新引导选项。/dev/sdX
是新硬盘的设备名称,Y
是分区号。