将光盘布局和分区复制到另一个驱动器

科夫·科斯·德夫

我正在开发一个应用程序,在该应用程序中,我需要创建始终具有完全相同的分区布局的驱动器。我最初的想法是使用sfdisk转储原始驱动器的分区表。

sfdisk -d /dev/sdX > parttable

然后使用以下命令将其应用于所有其他驱动器:

sfdisk /dev/sdX < parttable

但是这种方法似乎行不通。我从USB驱动器中转储了正确的分区表,然后使用gparted创建了一些随机分区,然后尝试将初始分区表写回到驱动器中。

但是问题是,无法识别该分区。例如,Gparted将分区列为未知分区。我想,我可能必须格式化创建的分区,因为partitiontable不存储有关文件系统的信息。

我的问题现在是:我可以以某种方式保存分区表和有关分区(文件系统等)的信息,并以此方式创建新驱动器(最好在一个命令中)。

顺便说一句:msdos可分割

编辑:一种替代方法是,自己收集有关驱动器(例如,部件表,文件系统)的所有数据,然后手动创建命令。是否有可能(也许是分开的)在一个命令中创建分区表并格式化多个分区?

金德拉巴

在以下条件下工作:

  • 要复制的原始磁盘是 /dev/sdx
  • 原始磁盘已正确分区/标记/标记
  • 原始磁盘的文件系统内容将被忽略
  • 要复制到的目标磁盘将是 /dev/sdy
  • 交换分区将是 /dev/sdy4
  • 引导分区将/dev/sdy1安装在/boot带有ext3文件系统的最终系统中
  • 根分区将通过文件系统/dev/sdy2挂载/在最终系统中ext4
  • 用户分区将/dev/sdy3安装在/home带有ext4文件系统的最终系统中
  • 您要复制的Debian系统已被解压缩并压缩到 master_system.tar.gz
  • 所有文件(包括脚本)都将存储在工作目录中
  • 该脚本将从同一工作目录执行
  • 该脚本将以身份运行root,而不sudo是以root用户身份或su在终端中登录
  • dupe_mnt工作目录中有一个目录

只需更改一次,即可“复制”原始磁盘的分区结构。

sfdisk --dump /dev/sdx > master_table

由于只有您在所讨论的系统上可以确定要从用作主服务器的Debian系统中复制什么,因此我不再赘述。我知道你不会复制/proc/dev//sys目录,但也有一定要别人来排除。您可以选择任意方式创建该归档文件,然后将其命名master_system.tar.gz其中应包含/boot/home目录。就这样,设置完成,直到您更改要复制的Debian系统或磁盘分区为止。

创建的脚本称为sys_replicate.sh

#!/bin/sh
target=$1;
sfdisk /dev/${target} < master_table;
# Format the swap partition
mkswap /dev/${target}4;
# Format the data partitions
mkfs.ext3 /dev/${target}1;
mkfs.ext4 /dev/${target}2;
mkfs.ext4 /dev/${target}3;
# Mount the target root filesystem and its parts
mount /dev/${target}2 dupe_mnt;
mount /dev/${target}1 dupe_mnt/boot;
mount /dev/${target}3 dupe_mnt/home;
# Copy the master system to the target
cd dupe_mnt;
tar -zxvpf ../master_system.tar.gz;
cd ..;
# Unmount the new system
cd ..
umount /dev/${target}3;
umount /dev/${target}1;
umount /dev/${target}2;
#done

该文件sys_replicate.sh需要execute设置位。chmod +x sys_replicate.sh

要使用此过程,请在设置后连接目标磁盘。如果是USB,请确保系统已识别它可用。如果是内部硬盘驱动器,显然需要重新启动,系统应该会自动找到它。一旦连接成功,是非常肯定你知道/dev它是,因为添加磁盘可以重新排列的字母。准备就绪后,在rootshell中执行:

./sys_replicate.sh sdy

设备名称/dev/sdy/dev/sdx显然需要更改以匹配您的操作系统。而且,事实证明,它sfdisk 可以处理GPT磁盘和扩展分区,因此不需要我前面的注释问题。如果使用比原始磁盘大的磁盘作为副本,则所有内容仍然可以使用。但是,您将浪费无法轻松回收的空间,因此在选择要复制的主磁盘之前,请考虑到这一点。

分区结构的创建和Debian系统的复制是独立的,因此更改其中一个不需要更新另一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个迭代器复制到另一个?

如何使用MS GRAPH SDK C#获取驱动器信息(ParentReference)以将文件复制到另一个驱动器

如何使用Ubuntu将可引导NTFS分区从一个物理硬盘驱动器复制到另一个物理硬盘驱动器?

将整个文件系统层次结构从一个驱动器复制到另一个驱动器

将操作系统从一个驱动器复制到另一个驱动器,从MBR迁移到GPT-需要注意什么?

将EFI系统分区移动到另一个驱动器

通过USB启动盘将文件从一个NTFS驱动器复制到另一个驱动器

如何使用单个DVD驱动器将DVD复制到另一个DVD?

将启动分区从一个磁盘复制到另一个磁盘

将Bootcamp分区移动到另一个驱动器

如何在Windows下将目录树从一个驱动器复制到另一个驱动器,以复制任何连接点?

将多个驱动器复制到一个HDD

有没有一种方法可以将扇区级别的复制/克隆从一个硬盘驱动器复制到另一个硬盘?

如何将windows.old文件夹复制到另一个驱动器?

如何使硬盘驱动器将其内容实时复制到另一个硬盘驱动器?

如何将USB(闪存)驱动器的内容自动复制到另一个目录?

如何将文件从外部驱动器复制到一个分区中?

如何将整个驱动器克隆到另一个驱动器?

硬盘驱动器已满时,将文件从一个连接的USB驱动器复制到另一个连接的USB驱动器

将一个内部驱动器备份到另一个内部驱动器

克隆硬盘驱动器并将所有数据从一个驱动器复制到另一个驱动器有什么区别?

如果我将可引导USB驱动器复制到另一个USB,它将创建一个重复的可引导驱动器吗?

如何将单个分区移动到另一个空驱动器?

如何将启动分区从一个驱动器分区更改为另一个驱动器分区?

将 Ubuntu 分区移动到另一个驱动器并调整大小?

将结果复制到另一个布局的 editText 对象(Android Studio)

如何将带有 BATCH 脚本的文件从一个驱动器上的文件夹复制到另一个驱动器上的同名文件夹中?

我的硬盘有错误,如何将其复制到另一个驱动器

如何将所有文件和目录(除了一个)从本地驱动器复制到 HDFS?