我在 500 GB 的机械驱动器上安装了 Ubuntu 18.04.3。我添加了一个 SSD。我在 SSD 上安装了 Ubuntu 18.04.3。SSD 是 sda,机械磁盘是 sdb。两个磁盘的扇区数相同。
我对安装在机械盘上的系统进行了一年多的改动。
我想复制sdb
到sda
。可以吗?如果我启动sdb
,会sudo dd if=/dev/sdb of=/dev/sda bs=2G
起作用吗?
有没有更简单的方法来重复安装?我主要希望 apt 和 python 包相同。
sudo fdisk -l /dev/sd[ab]
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x87f0c3fe
Device Boot Start End Sectors Size Id Type
/dev/sda1 409600 2506751 2097152 1G 83 Linux
/dev/sda2 * 2506752 212221951 209715200 100G 83 Linux
/dev/sda3 212221952 279330815 67108864 32G 82 Linux swap / Solaris
/dev/sda4 279330816 976773119 697442304 332.6G 83 Linux
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x49598911
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 976656 974609 475.9M b W95 FAT32
/dev/sdb2 * 976896 352538623 351561728 167.7G 83 Linux
/dev/sdb3 352538624 391600127 39061504 18.6G 82 Linux swap / Solaris
/dev/sdb4 391600128 976771071 585170944 279G 83 Linux
答案1
答案是这个 Stack Overflow 问题经过星光熠熠的系统管理员。
如何使用转储和恢复来“克隆”Linux 操作系统驱动器
您可以在网上找到大量有关使用
dd
克隆操作系统驱动器的信息。别听!这样使用起来要快得多
dump
,restore
因为你只复制数据,而不是复制所有块(无论是否为空)。第 1 部分:了解源驱动器和目标驱动器在设备列表中的位置
lsscsi | grep sd*
将显示 scsi 设备及其相关字母的列表。如果您很幸运地使用热插拔盒,那么您只需在插入驱动器之前和之后运行该命令即可——显示的最新设备当然是您刚刚插入的驱动器。
第 2 部分:准备转储
安全提示:为目标设备和源设备分配变量。(此外,如果您多次执行此操作,变量化允许您重复使用这些命令。)
SOURCE=/dev/sdx DEST=/dev/sdy
注意源驱动器(您要从中复制的驱动器)。如果您要复制当前操作系统驱动器,它将(呃)已被安装。如果您要复制其他驱动器,则实际上不需要安装它。
将源驱动器的分区表复制到文件中:
sfdisk -d $SOURCE > part_table
复制已存储在文件中的 part_table
sfdisk --force $DEST < part_table
将引导扇区清零:
dd if=/dev/zero of=${DEST}1 bs=512 count=1
创建文件系统(一次一个分区):
mkfs -t ext4 ${DEST}1 mkswap ${DEST}2
看一看:
parted $DEST --script print
复制所有非交换分区的标签。例如:
tune2fs -L "/" /${DEST}1
第 3 部分:转储 | 恢复时刻
创建一个目录来挂载转储 | 恢复的目标设备。(如上所述,无需挂载源设备。)
mkdir -p /mnt/${DEST}1
挂载目标设备:
mount -t ext4 ${DEST}1 /mnt/${DEST}1
cd
进入挂载点:cd /mnt/${DEST}1
转储和恢复:
dump -a0f - /dev/${SOURCE}1 | restore -rf -
(转储标志:
a
=自动大小;0
(零)=从块 0 开始;f
=文件,-
=标准输出;恢复标志:r
=重建;f
=文件;-
=标准输出)这
dump | restore
只需几分钟。第 4 部分:使用 grub 在克隆的驱动器上安装引导加载程序
假设您正在复制 OS 驱动器(即,启动盒子的驱动器),则需要安装引导加载程序。
Grub 将磁盘标识为 hd#,从 0(不是 1)开始。对应关系很简单:
/dev/sda
=hd0
、/dev/sdb
=hd1
等。[root@drive-toaster /]# grub grub> root (hd1,0) # use correct number for your disk! root (hd1,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd1) # use correct number for your disk! setup (hd1) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 27 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+27 p (hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded Done. grub> quit