我想将我现有的 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/
Run Code Online (Sandbox Code Playgroud)将引导加载程序安装到新驱动器
sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
Run Code Online (Sandbox Code Playgroud)
/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/fstabfor 中更新 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
Run Code Online (Sandbox Code Playgroud)
但是在替换该行之前,您可能希望通过按Ctrl+K和Ctrl+来制作它的副本U。当你的家仍然是旧的驱动器上,旧的UUID应该是正确的,你只需要更新的挂载点,以/home/$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
Run Code Online (Sandbox Code Playgroud)
保存有Ctrl+O和退出与Ctrl+ X。
你应该考虑移动个人home目录到一个单独的home-partition(它只是一个与用户的主目录挂载为/home中fstab,你可以使用sudo rsync -av再次复制数据,看我如何才能将我的/ home目录到另一个分区,如果它已经/ 分区的一部分?),因为您必须以这种方式为每个用户创建一个新行。
如果您在SSD 上创建了一个新的交换分区,您也必须为此更新 UUID:
# SSD swap
UUID=b7c315cb-cf89-463b-888a-185a1faa8250 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)
此外,您需要在 中更新交换分区的 UUID,在第一次从新驱动器启动后/media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resume运行sudo update-initramfs -k all -u并重新启动以使休眠再次工作。
请记住还要为 EFI 安装更新fstab 中ESP的挂载点。
看起来很复杂,但做起来很简单,只是详细描述起来困难而冗长。
提示:sudo apt-get install grub-efi-amd64当 GRUB 说一些关于i386-pc.
/) 分区的内容,包括/boot,对吗?您复制了 ESP 的内容?如果你没有,就这样做。
编辑EFI/ubuntu/grub.cfg新的 ESP。用新的根分区的 UUID 替换 UUID 应该就足够了,如果没有相应地更改hd0,gpt2本示例中的部分。这是文件内容通常的样子:
search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
Run Code Online (Sandbox Code Playgroud)从旧安装启动,运行sudo update-grubos-prober 应该会在另一个分区上找到新安装并添加一个 GRUB 条目。
sudo update-grub再次在此处运行以更新和修复 SSD 上的 GRUB 配置。efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu"以将新/转移安装的引导加载程序添加为 UEFI NVRAM 的新引导选项。/dev/sdX是新硬盘的设备名,Y分区号。| 归档时间: |
|
| 查看次数: |
9402 次 |
| 最近记录: |