partedコマンドを使用して、各新しいディスクに2つのパーティションを作成しようとしています。
たとえば、
sdg 8:96 0 50G 0 disk
├─sdg1 8:97 0 25G 0 part
└─sdg2 8:98 0 25G 0 part
上記の例のように、ディスクサイズは50Gで、ディスクごとに2つのパーティションを作成しようとしています。
私たちはこれを通して
parted --script /dev/sdg mklabel msdos
parted --script /dev/sdg mkpart primary 0% 50%
parted --script /dev/sdg mkpart primary 50% 100%
要求された2つのパーティションを作成するための上記の内容は正しいですか?同じサイズを持って
GB単位で値を与えるのではなく、0% 50%
と で値を使っているのでこう尋ねるのです。100%
注 - その他の関連リンク https://askubuntu.com/questions/507274/how-to-create-two-partitions-with-exactly-the-same-size
答え1
いつものように、コンピュータの文書から始める必要がありますman parted
。
mkpart [part-type name fs-type] start end
新しいパーティションを作成します。パーティションテーブルとしてのみ指定part-type
できます。またはいずれかでmsdos
なければなりません。dvh
パーティションテーブルはGPTに必須であり、オプションです。 、、、、、、、、、、、、、、、、、、、、またはそのいずれかです。primary
logical
extended
name
fs-type
fs-type
btrfs
ext2
ext3
ext4
fat16
fat32
hfs
hfs+
linux-swap
ntfs
reiserfs
udf
xfs
start
何もないので、end
文書をさらに検索する必要があります。ついに我々は以下を見つけました:
unit unit
位置とサイズを表示するときだけでなく、明示的な単位サフィックスなしでユーザーが指定した単位を解釈するときに使用する単位を設定します。これは、(セクタ)、(バイト)、(デバイスサイズのパーセンテージ)、(シリンダ)、(シリンダ、ヘッド、セクタ)、または(入力の場合はメガバイト、unit
出力の場合はおなじみの形式の1つである人間の形式)です。s
B
kB
MB
MiB
GB
GiB
TB
TiB
%
cyl
chs
compact
unit
これは実際には使用されないように意図されていますが、mkpart
すべての測定に使用可能な単位タイプを定義することもあります("明示的な単位サフィックスなしでユーザーが提供したコンテンツの解釈")。
ディスク比率を使用してパーティションのサイズを決定します。 0%/ 50%/ 100%を使用して同じサイズの2つのパーティションを提供することはできないため、正確なサイズで指定することをお勧めします。
# Identify disk OR see the next step for a test scenario
dsk=/dev/sdg
# If you prefer, try with this loopback device
dd if=/dev/zero bs=1M count=1024 >/tmp/img
dsk=$(losetup --show --find /tmp/img)
# Create partition table on target disk/device
parted --script "$dsk" mklabel msdos
# MiB on the disk
mib=$(parted "$dsk" unit MiB print | awk '/^Disk/{print $NF+0; exit}')
printf "Size of %s is %d MiB\n" "$dsk" $mib
# Two identically sized partitions using the entire disk
psz=$((mib/2 -1))
printf "Partition size is %d MiB\n" $psz
parted "$dsk" unit MiB mkpart primary 1 $((1+psz))
parted "$dsk" unit MiB mkpart primary $((1+psz)) $((1+psz +psz))
# Show what we have (change "s" to "MiB" for better readability)
parted "$dsk" unit s print
ところで、パーセンテージベースの割り当てを使用した結果は次のとおりです。ご覧のとおり、パーティションはほぼサイズは同じですが正確ではありません:
dd if=/dev/zero bs=1M count=1024 >/tmp/img
dsk=$(losetup --show --find /tmp/img)
parted --script "$dsk" mklabel msdos
parted "$dsk" mkpart primary 0% 50% # Notice 0% isn't sector zero
parted "$dsk" mkpart primary 50% 100%
parted "$dsk" unit s print # Count by sectors
Model: Loopback device (loopback)
Disk /dev/loop0: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 1048575s 1046528s primary
2 1048576s 2097151s 1048576s primary