由于我的笔记本电脑 ( ) 的原始 SSDsdb
相对较小(100GB),因此我最近安装了另一个sda
容量更大的 SSD ( )(500GB)。我的想法是使用命令将旧 SSD ( ) 克隆sdb
到新 SSD ( sda
)上dd
,因此我从 live-usb-ubuntu-stick 运行了以下命令:
sudo dd if=/dev/sdb of=/dev/sda bs=64K
以便将sdb
(旧 SSD)的内容复制到sda
(新 SSD)上。
运行此命令后,我无法从两个 SSD 中的任何一个启动(这两个 SSD 仍安装在笔记本电脑中)。然后我运行了该boot-repair
命令,现在当我从启动时,GRUB 可以正常启动sda
。GRUB 为我提供了以下选项:
- Ubuntu
- Windows 7
- Ubuntu (on /dev/sda5)
- Windows 7 (on /dev/sda2)
问题是,当我想在较新的 SSD 上启动 Ubuntu 版本(Ubuntu (on \dev\sda5)
GRUB 中的选项)时,GRUB 仍会在旧 SSD 上加载 Ubuntu 安装\dev\sdb5
。
我想我可能需要\boot\grub
对文件进行手动\etc\fstab
更改sda
?
\etc\fstab
目前有以下内容(上\dev\sda
):
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb5 during installation
UUID=c4055038-09dd-417e-88f1-228ffcf873c1 / ext4 errors=remount-ro 0 1
# swap was on /dev/sdb6 during installation
UUID=9c79ac5d-78a8-4ab7-9141-8397cb686e25 none swap sw 0 0
编辑:
当我在 GRUB 中选择并在终端中Ubuntu (on \dev\sda5)
运行时,我得到以下内容:lsblk
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 102M 0 part
├─sda2 8:2 0 78.3G 0 part
├─sda3 8:3 0 1K 0 part
├─sda5 8:5 0 195.8G 0 part
└─sda6 8:6 0 7.9G 0 part
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 102M 0 part
├─sdb2 8:18 0 78.3G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 31.8G 0 part /
└─sdb6 8:22 0 7.9G 0 part [SWAP]
答案1
clone-ubuntu.sh
Bash 脚本
使用clone-ubuntu.sh
会快速完成您想要的操作。下面包含解决您问题的相关代码片段,但请访问链接查看完整图片。
克隆类似dd
克隆类似dd
,但无需重新启动到 Live USB。虚拟文件系统会自动跳过以节省时间并消除错误。如果需要,可以重新运行该脚本(例如,您正在测试 Ubuntu 升级/更新),并且第二次运行速度更快:
rsync -haxAX --stats --delete --info=progress2 --info=name0 --inplace \
/* "$TargetMnt" \
--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}
更新/etc/fstab
使用lsblk
确定源和目标 UUID 来自动在新克隆中进行更改:
# Update /etc/fstab on clone partition with clone's UUID
echo ""
echo "====================================================================="
echo "Making changes in: $TargetMnt/etc/fstab"
echo " from UUID: $SourceUUID"
echo " to UUID: $TargetUUID"
sed -i "s/$SourceUUID/$TargetUUID/g" "$TargetMnt"/etc/fstab
使用新条目更新grub
菜单
Grub 需要知道正确的 UUID 并clone-ubuntu.sh
自动为您生成:
# Update /boot/grub/grub.cfg on clone partition with clone's UUID
echo ""
echo "====================================================================="
echo "Making changes in: $TargetMnt/boot/grub/grub.cfg"
echo " from UUID: $SourceUUID"
echo " to UUID: $TargetUUID"
echo "Also change 'quiet splash' to 'nosplash' for environmental awareness"
echo "Suggest first time booting clone you make wallpaper unique"
sed -i "s/$SourceUUID/$TargetUUID/g" "$TargetMnt"/boot/grub/grub.cfg
sed -i "s/quiet splash/nosplash/g" "$TargetMnt"/boot/grub/grub.cfg
概括
包含相关的 bash / shell 命令,因此您可以手动执行相同的步骤,以成功克隆并按预期启动和运行。