GPT(33)と最初のソートパーティション(2048)の間の空きセクタを使用してGPTディスクのGRUBレガシーブート用のパーティションを作成するにはどうすればよいですか?
もし私が他のすべてのセグメントは分割されました。、、、および利用可能な無料セクターがないと文句を言いますfdisk
。gdisk
parted
私がしたことは次のとおりです。
- 次のコマンドを使用して、GPTをテキストファイルにエクスポートします。
sfdisk
- 手動で指定して別のパーティションを追加する
- 最初のLBA(2048年から34)
- パーティション番号
- スタートセクタ(34)
- 規模(2014年業界)
- GUID(21686148-6449-6E6F-744E-656564454649)
- 変更されたバージョンをディスクに復元する
partprobe
使用可能なパーティションの数のリフレッシュの実行- パーティションタイプの変更(BIOS起動)の使用
fdisk
これは難しい回避策であることを知っていますが、最初に他のパーティションを破壊せずに通常のツールを使用してこれを行う方法を見つけることはできません。
答え1
parted
一般的に非常にうまく動作します。並べ替えの問題について警告しますが、この場合は無視できます。
# truncate -s 1G foobar.img
# parted foobar.img
GNU Parted 3.4
Using /dev/shm/foobar.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) mklabel gpt
(parted) disk_set pmbr_boot on
(parted) print free
Model: (file)
Disk /dev/shm/foobar.img: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
34s 2097118s 2097085s Free Space
(parted) mkpart linux 2048s 2097118s
(parted) set 1 lvm on
セクタ 34 に grub パーティションを作成します。
(parted) mkpart grub 34s 2047s
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? Ignore
(parted) set 2 bios_grub on
最終結果は、レガシーMBRヘッダー(一部のシステムに必要)にブートフラグが設定され、最初の1MiBの前にgrubパーティションが圧縮されたGPTパーティションテーブルです。
(parted) print free
Model: (file)
Disk /dev/shm/foobar.img: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
2 34s 2047s 2014s grub bios_grub
1 2048s 2097118s 2095071s linux lvm
もちろん、まったく新しいパーティションテーブルにはこれは必要ありません。グラップパーティションのMiBアライメントに固執することもできます。どちらにしても害はありません。