Kev*_*Dev 5 partition fdisk parted partition-table
我正在开发一个应用程序,我需要在其中创建始终具有完全相同分区布局的驱动器。我最初的想法是用 sfdisk 转储原始驱动器的分区表。
sfdisk -d /dev/sdX > parttable
Run Code Online (Sandbox Code Playgroud)
然后将其应用到所有其他驱动器:
sfdisk /dev/sdX < parttable
Run Code Online (Sandbox Code Playgroud)
但是这个方法好像行不通。我从 USB 驱动器转储了正确的分区表,然后使用 gparted 创建了一些随机分区,然后尝试将初始分区表写回驱动器。
但问题是,无法识别分区。例如,Gparted 将分区列为未知。我想,我可能必须格式化创建的分区,因为分区表不存储有关文件系统的信息。
我现在的问题是:我能否以某种方式保存分区表和有关分区(文件系统等)的信息并以这种方式创建一个新驱动器(最多只用一个命令)。
顺便说一句:msdos 分区表
编辑:另一种方法是,自己收集有关驱动器(例如部件表、文件系统)的所有数据并手动创建命令。是否可以(也许使用 parted)在一个命令中创建分区表并格式化多个分区?
在以下条件下工作:
/dev/sdx/dev/sdy/dev/sdy4/dev/sdy1安装/boot在最终系统中ext3/dev/sdy2安装/在最终系统中ext4/dev/sdy3安装/home在最终系统中ext4master_system.tar.gzroot,但要么sudo以 root 身份登录,要么su在终端中运行dupe_mnt工作目录中有一个目录要“复制”原始磁盘的分区结构,只需要一次,除非结构发生改变。
sfdisk --dump /dev/sdx > master_table
Run Code Online (Sandbox Code Playgroud)
由于只有您在相关系统上才能确定从作为主系统的 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
Run Code Online (Sandbox Code Playgroud)
该文件sys_replicate.sh需要设置位execute。chmod +x sys_replicate.sh
要使用该过程,设置后,连接目标磁盘。如果是 USB,请确保系统已识别出它可用。如果它是内置硬盘,显然需要重新启动,系统应该会自动找到它。连接后,请务必知道/dev它是什么,因为添加磁盘可以重新排列字母。准备就绪后,在rootshell 中执行:
./sys_replicate.sh sdy
设备名称/dev/sdy显然/dev/sdx需要更改以匹配您的操作系统。而且,事实证明,sfdisk 可以处理 GPT 磁盘和扩展分区,因此不需要我之前的评论问题。如果您使用比原始磁盘更大的磁盘作为副本,一切仍然可以正常工作。但是,您将浪费一些无法轻松回收的空间,因此在选择要复制的主磁盘之前请考虑到这一点。
分区结构的创建和 Debian 系统的复制是独立的,因此对其中一个的更改不需要更新另一个。
| 归档时间: |
|
| 查看次数: |
10230 次 |
| 最近记录: |