我可以用来sgdisk -b /dev/sdx
将磁盘的 GPT 分区映射保存到文件中。我想为具有一定大小的一个分区的 GPT 生成这样一个文件。我认为执行此操作的唯一方法是在 GParted 等工具中实际格式化磁盘,然后用于gdisk
保存 GPT。
有没有办法(最好是在 GParted 中)使用我想要的分区设置 GPT 表,然后将其保存到文件而不是写入磁盘?
其他不需要的选项:
- 手动编辑转储
sgdisk
。要把事情做好太难了。 - 创建所需大小的 VirtualBox 磁盘,对其进行格式化,然后使用
sgdisk
.我想要的 440GiB 磁盘将花费很长时间。编辑:实际上,如果我使用动态分配的虚拟磁盘,这会很快,但这是一个笨拙的解决方案。
答案1
我了解您的问题与分区表和分区有关,而不是与数据有关。如果这是正确的,那么您的答案已经在parted
和的手册页中这里。
parted
本质上创建一个创建 gpt 方案所需命令的脚本,然后
parted --script /dev/sdx [script commands]
可以将其放入 shell 脚本中并根据需要执行,或许可以将设备作为参数传递给脚本。
评论后编辑:根据该man sgdisk
页面,要获取“幻像”磁盘的 sgdisk 输出,请使用“-P”选项,该选项在内存中执行任务,但不会将更改提交到磁盘。
我刚刚用 USB 尝试过,它似乎可以工作
sudo sgdisk -p /dev/sdb
Disk /dev/sdb: 31653888 sectors, 15.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2016C547-548B-482E-8810-A5E7A1466CED
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 31653854
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 31651839 15.1 GiB 0700 IDEA #old name
sudo sgdisk -P -c 1:random -p /dev/sdb #change the name
Setting name!
partNum is 0
REALLY setting name!
Disk /dev/sdb: 31653888 sectors, 15.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 2016C547-548B-482E-8810-A5E7A1466CED
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 31653854
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 31651839 15.1 GiB 0700 random #name changed
重新执行
sudo sgdisk -p /dev/sdb
Number Start (sector) End (sector) Size Code Name
1 2048 31651839 15.1 GiB 0700 IDEA #change not written
这一变化也反映在输出中
sudo sgdisk -P -c 1:random --backup=phantomDisk /dev/sdb