次のコマンドを実行すると:
parted -s /dev/sda \
mklabel gpt \
mkpart primary 1MiB 261MiB \
set 1 esp on \
mkpart primary 261MiB 50GiB \
mkpart primary 50GiB 550GiB \
mkpart primary 550GiB 100%
mkfs.fat -F32 /dev/sda1
yes | mkfs.ext4 /dev/sda2
yes | mkfs.ext4 /dev/sda3
yes | mkfs.ext4 /dev/sda4
私が得たprimary
すべてのパーティションの名前は次のとおりです。
Model: ATA ST2000LM003 HN-M (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 primary boot, esp
2 274MB 53.7GB 53.4GB ext4 primary
3 53.7GB 591GB 537GB ext4 primary
4 591GB 2000GB 1410GB ext4 primary
これらの名前を望んでいません。自動命名を防ぐにはどうすればよいですか?
編集する
その部分を次のように変更した場合mkpart
:
parted -s /dev/sda \
mklabel gpt \
mkpart 1MiB 261MiB \
set 1 esp on \
mkpart 261MiB 50GiB \
mkpart 50GiB 550GiB \
mkpart 550GiB 100%
スクリプトを実行すると、次の結果が表示されます。
Error: Invalid number.
mkfs.fat 4.1 (2017-01-24)
mkfs.fat: unable to open /dev/sda1: No such file or directory
mke2fs 1.45.3 (14-Jul-2019)
The file /dev/sda2 does not exist and no size was specified.
mke2fs 1.45.3 (14-Jul-2019)
The file /dev/sda3 does not exist and no size was specified.
mke2fs 1.45.3 (14-Jul-2019)
The file /dev/sda4 does not exist and no size was specified.
編集する
gparted
次のことができます。
ここでは最後のパーティションからタグを削除しましたが、gparted
コマンドがどのように実行されるかは表示されません!
答え1
~から別の書類:
コマンド: mkpart[部分型 fs 型名] 開始終了
...
部品タイプprimary
""、""、または""のいずれかで、extended
""または""パーティションテーブルとしてのみ指定できますlogical
。 ㅏmsdos
dvh
名前'で指定する必要がありますgpt
。どちらもありません部品タイプ...でもない名前sun
分割テーブルと組み合わせて使用できます。
partedを使用している場合は、GPTパーティションの名前を設定する必要があります。
答え2
parted
空の文字列を指定すると、パーティションを使用するときにパーティション名を指定する必要がなくなります。
同じ参照を使用します。公式文書:
コマンド: mkpart[パーツタイプ名 fs-type] 開始終了
...
部品タイプprimary
""、""、または""のいずれかで、extended
""または""パーティションテーブルとしてのみ指定できますlogical
。 ㅏmsdos
dvh
名前パーティションテーブルに指定する必要がありますgpt
。どちらもありません部品タイプ...でもない名前sun
分割テーブルと組み合わせて使用できます。
それでは分析してみましょう(強調)。
部品タイプ
primary
extended
""、""、または""のいずれかですlogical
。指定のみ可能'msdos
'または'dvh
'パーティションテーブル。
したがって、gpt
パーティションを分割したテーブルを作成するとき使用しない part-type
(明らかな理由はパーティションタイプが 1 つだけだということです。) つまりgpt
、ディスクの場合コマンドは次のとおりです。
mkpart [name fs-type] start end
これは、最初のパラメータがあることを意味しますmkpart
。name
参照に戻りましょう。
ㅏ名前 指定する必要があります。"
gpt
"パーティションテーブルの場合。
つまり、最初のパラメーターは必須であるため、mkpart
コマンドの後のすべての文字列は指定されたパーティション名として解釈されます。インタラクティブモードで使用するときにparted
名前なしで新しいパーティションを作成するにはどうすればよいですか?""
次のように空の文字列を使用します。
(parted) mkpart "" 0% 100%
スクリプトモードでコマンドを実行するときは、これらの引用符がシェル拡張(何もしない)を回避し、文字通り渡す必要があるため、parted
エスケープ/引用符を付ける必要があります。
parted -a optimal -s /dev/sda mklabel gpt mkpart '""' 0% 100%
つまり、特定のケースでは、「基礎的」これはパーティション名として使用され、空の文字列を使用できます。
parted -s /dev/sda \
mklabel gpt \
mkpart '""' 1MiB 261MiB \
set 1 esp on \
mkpart '""' 261MiB 50GiB \
mkpart '""' 50GiB 550GiB \
mkpart '""' 550GiB 100%
答え3
あなたはそれを使用することができますfdisk
fdisk
util-linux 2.31.1とはおそらく他の最新バージョンが利用可能です。
Xをターゲットドライブの実際のデバイス文字に置き換える必要がある次のスクリプトファイルを使用してテストしました。もちろん、正しいパーティションの数とサイズを設定する必要があります。インタラクティブに実行して、使用する構文を学ぶことができますfdisk
。
#!/bin/bash
LANG=C
echo "g
n
+256m
n
+1g
n
w" | fdisk /dev/sdX
説明する
次のリストは機能しませんが(fdiskはコメントを受け付けません)、上記のスクリプトを理解するのに役立ちます。
#!/bin/bash
LANG=C
echo "g # gpt, GUID partition table
n # new partition
# default partition number
# default start location
+256m # size
# default answer to partition name
n # new partition
# default partition number
# default start location
+1g # size
# default answer to partition name
n # new partition
# default partition number
# default start location
# default end location at the drive's tail end
# default answer to partition name
w # write to the drive" | fdisk /dev/sdX
認証には「名前」はありません。
$ sudo partprobe;sleep 1;LANG=C sudo parted /dev/sdc p
Model: Kingston DataTraveler G3 (scsi)
Disk /dev/sdc: 4010MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 269MB 268MB
2 269MB 1343MB 1074MB
3 1343MB 4010MB 2667MB