创建系统映像(克隆所有分区的步骤)

创建系统映像(克隆所有分区的步骤)

我想创建我的系统的映像文件,然后加载该文件并恢复我的系统,就像现在一样。

我问这个问题的原因是我想升级我的笔记本电脑的硬盘(我已经买了一个固态硬盘)。请注意,我不需要只克隆我的根分区。

由于我使用笔记本电脑大约三个月,我安装了一些东西,我不想丢失(程序,配置等)。

我的问题是:

  1. 创造这种形象的最佳方式是什么

  2. 升级后如何加载

  3. 有问题吗(如果有,能以某种方式解决吗?),因为我的驱动器有 700 GB 的存储空间,而 SSD 有 256 GB

  4. 我应该将该文件存储在什么介质中(我认为它会有点大。那么 CD、DVD 还是另一个外部硬盘?)

我看了一下 Clonezilla,但正如我在一些教程中看到的,我只能克隆一个分区。

我需要克隆 /、swap 和 /media/{username} 分区,然后在新驱动器中恢复它们。

我当前的分区布局是:

Number  Start   End    Size    Type      File system     Flags    
 1      1049kB  250GB  250GB   primary   ext4            boot    
 2      250GB   255GB  4999MB  extended    
 5      250GB   255GB  4999MB  logical   linux-swap(v1)    
 3      255GB   750GB  495GB   primary   ntfs

df -h 给出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       230G   34G  184G  16% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            2,5G   12K  2,5G   1% /dev
tmpfs           510M  1,2M  509M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            2,5G  107M  2,4G   5% /run/shm
none            100M   52K  100M   1% /run/user
/dev/sda3       462G  5,7G  456G   2% /media/johnnemo/E

您能否为我提供实现此目标所需的步骤(或至少一个详细解释这些步骤的链接)?

提前致谢。

答案1

我将发布一种不使用磁盘映像的方法。在这种情况下,操作有点复杂。

总的来说,750 GB 的磁盘上有大约 40 GB 的数据。制作完整磁盘映像会浪费大量时间和空间。

鉴于 SSD 是一个小得多的磁盘,我建议复制内容而不是整个磁盘/分区:

  1. 根据磁盘使用情况规划新磁盘的布局。例如:100GB 用于/(包括/home),5GB 用于交换,其余约 150GB 用于 NTFS 分区。
  2. 将内容存档到外部驱动器(DVD 太小),大约有 40GB 的空间。为此,请启动到实时 USB,连接外部磁盘并执行以下操作:

    sudo mount /dev/sda1 /mnt
    sudo tar -zcf /media/some-disk/root.tar.gz -C /mnt .
    sudo umount /mnt
    sudo mount /dev/sda3 /mnt
    sudo tar -zcf /media/some-disk/E.tar.gz -C /mnt .
    sudo umount /mnt
    

    /media/some-disk是外部磁盘的安装位置。我们正在创建压缩档案,这可能会节省一点空间,因此您可以使用不到 40GB 的磁盘可用空间。

  3. 交换磁盘,再次启动到实时 USB,使用 GParted 或 Disks 或您首选的分区工具创建相应的分区。假设它们的编号方式相同。现在我们提取文件。

    sudo mount /dev/sda3 /mnt
    sudo tar -zxf /media/some-disk/E.tar.gz -C /mnt
    sudo umount /mnt
    sudo mount /dev/sda1 /mnt
    sudo tar -zxf /media/some-disk/root.tar.gz -C /mnt
    

    请注意,我尚未卸载/mnt,并且它已安装根文件系统。

  4. 现在我们将其设置为正确启动。这涉及更新 GRUB 和系统的fstab。这是 AskUbuntu 上 OP 调整分区大小时经常出现的问题。步骤如下:

    • 记下新根分区和交换分区的 UUID。使用blkidlsblk命令。例如:

      $ sudo blkid
      /dev/sda1: UUID="d3504dc2-8f01-48f1-be05-d265110e2e73" TYPE="ext4
      /dev/sda5: UUID="1895a8c0-f6ea-48fc-a074-ead385f6c7f3" TYPE="swap 
      
    • chroot到已安装的系统:

      for i in /dev /dev/pts /sys /proc; do mount --bind $i /mnt$i; done
      chroot /mnt /bin/bash -l
      
    • 在 中chroot,更新 fstab:

      sudo nano /etc/fstab
      

      更改根分区和交换分区的 UUID:

      # / was on /dev/sda1 during installation
      UUID=d3504dc2-8f01-48f1-be05-d265110e2e73 /               ext4    errors=remount-ro 0       1
      # swap was on /dev/sda5 during installation
      UUID=1895a8c0-f6ea-48fc-a074-ead385f6c7f3 none            swap    sw              0       0
      
    • 现在安装并更新 GRUB:

      grub-install /dev/sda
      update-grub
      
    • 退出chroot并重新启动:

      exit
      reboot
      
  5. 完毕。

相关内容