我正在使用 ubuntu 15.10 并从我的 usb3 棒(它有 2 个分区,一个 / 一个交换)运行它,我想将我的 ubuntu 安装(不仅是我安装的程序,还有所有设置,如双显示器调整,我已经进行了声音首选项编解码器等)从 usb 迁移到我电脑内的 SSD(出于空间原因)
长话短说,硬件方面什么都不会改变,同样的显示器,同样的硬件,只是想从 USB 克隆 ubuntu 安装(我通常将它安装在 USB 上作为硬盘它不是从 USB 运行的“livecd”),可以在同一系统上复制到我的 SSD,而不会丢失我的照片、设置、程序
有没有简单的方法,还是我必须以困难的方式将其全新安装到 SSD,然后复制粘贴照片等,然后手动重新设置并手动重新下载软件包? 两个文件系统(在源 USB 和目标 SSD 上)都是 ext 4
答案1
如果 SSD 上还没有任何数据,那么这很简单:以救援模式启动现有安装(从 grub 启动菜单中选择),然后在救援菜单中,选择 root shell 选项,然后运行lsblk
以查看哪些磁盘是什么。确定哪个是现有 USB,哪个是新 SSD,假设 USB 是 /dev/sda,SSD 是 /dev/sdb(否则调整参数),运行将dd if=/dev/sda of=/dev/sdb
USB 上的所有内容复制到 SSD。然后,您应该能够关机、移除 USB,启动 SSD 并启动 gparted 来移动/调整分区大小以利用额外空间。不要尝试同时连接两个磁盘进行启动,因为它们将具有相同的 UUID,这会使系统感到困惑。
如果 SSD 上已有数据,则操作会稍微复杂一些。首先,在 SSD 上创建一个分区来保存根文件系统。无需格式化它。然后像上面一样启动到救援模式,只不过不需要复制整个磁盘,而只需复制根分区。假设 /dev/sda1 是现有的根目录,/dev/sdb3 是要复制到的 SSD 上的分区,运行即可e2image -arp /dev/sda1 /dev/sdb3
复制文件系统(与 不同dd
,e2image
足够智能,可以仅复制文件系统的已用部分,而跳过可用空间,从而加快该过程 )。之后,运行resize2fs /dev/sdb3
以扩展文件系统以使用新分区中的额外空间。如果 /dev/sdb4 是您的新交换分区,请使用 对其进行格式化mkswap -U uuidgoeshere /dev/sdb4
。使用旧交换分区的 UUID。最后,在 SSD 上安装 grub 以便它可以启动:grub-install /dev/sdb
。之后,关机,移除 USB 驱动器,然后从 SSD 启动。