差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | 最新のリビジョン 両方とも次のリビジョン | ||
freebsd:migrate_freebsd_legacy_gpt_boot_to_uefi [2019-09-20 21:45] Decomo |
freebsd:migrate_freebsd_legacy_gpt_boot_to_uefi [2021-03-08 09:46] Decomo |
||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | ====== |
FreeBSD 9.0-BETA3の時にレガシーGPTブートでRoot on ZFS環境を作ってから早8年が過ぎた。その間、OSの更新しつつ使い続けてきたが、2019年にもなってLegacyブートもなかろうと思いUEFIブート環境に切り替えることにした。 | FreeBSD 9.0-BETA3の時にレガシーGPTブートでRoot on ZFS環境を作ってから早8年が過ぎた。その間、OSの更新しつつ使い続けてきたが、2019年にもなってLegacyブートもなかろうと思いUEFIブート環境に切り替えることにした。 | ||
行 8: | 行 8: | ||
* FreeBSD 12.0-RELEASE-p4 | * FreeBSD 12.0-RELEASE-p4 | ||
- | * Legacy/ | + | * Legacy/ |
* ada0が起動ストレージ | * ada0が起動ストレージ | ||
* FreeBSD専用マシン | * FreeBSD専用マシン | ||
行 14: | 行 14: | ||
===== 手順 ===== | ===== 手順 ===== | ||
- | やることはESPを作ってEFI用のブートローダを置くだけだったりする。 | + | ディスク自体はすでにGPTで構成されているので、やることはEFIシステムパーティションを作ってUEFI用のブートローダを置くだけだったりする。 |
==== ESPの作成 ==== | ==== ESPの作成 ==== | ||
行 20: | 行 20: | ||
起動ストレージにESP((EFI System Partition))を作る。ここにUEFIブートローダを入れるわけだが、この確保が最大の難関。 | 起動ストレージにESP((EFI System Partition))を作る。ここにUEFIブートローダを入れるわけだが、この確保が最大の難関。 | ||
- | ディスクに空きがあればいいのだが、なければデバイスを交換する他ない。この際、新デバイスをミラー構成でプールに追加し、作業完了後に古いデバイスをdetachすればデータ同期の手間が省けて便利である。各人工夫して、どうにかしてESPを確保してくだしあ。 | + | ディスクに空きがあればいいのだが、なければデバイスを交換する他ない。この際、移行先デバイスをミラー構成でプールに追加し、作業完了後に古いデバイスをdetachすれば、ダウンタイムが殆どなくかつデータ同期のアレコレを気にしなくていいので楽である。SATAが空いてなければUSB接続でもよいし、正攻法でzfs send/ |
+ | |||
+ | 各人工夫して、どうにかしてESPを確保されたし。 | ||
< | < | ||
行 49: | 行 51: | ||
< | < | ||
- | 512バイトセクタの場合 | + | ▼512バイトセクタの場合 |
# newfs_msdos -F 32 -S 512 -c 4 ada0p1 | # newfs_msdos -F 32 -S 512 -c 4 ada0p1 | ||
/ | / | ||
BytesPerSec=512 SecPerClust=4 ResSectors=32 FATs=2 Media=0xf0 SecPerTrack=63 Heads=16 HiddenSecs=0 HugeSectors=1048576 FATsecs=2040 RootCluster=2 FSInfo=1 Backup=2 | BytesPerSec=512 SecPerClust=4 ResSectors=32 FATs=2 Media=0xf0 SecPerTrack=63 Heads=16 HiddenSecs=0 HugeSectors=1048576 FATsecs=2040 RootCluster=2 FSInfo=1 Backup=2 | ||
- | 4kセクタの場合 | + | ▼4kセクタの場合 |
- | sudo newfs_msdos -F 32 -S 4096 -c 1 nvd0p1 | + | # newfs_msdos -F 32 -S 4096 -c 1 nvd0p1 |
/ | / | ||
BytesPerSec=4096 SecPerClust=1 ResSectors=4 FATs=2 Media=0xf0 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=131072 FATsecs=128 RootCluster=2 FSInfo=1 Backup=2 | BytesPerSec=4096 SecPerClust=1 ResSectors=4 FATs=2 Media=0xf0 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=131072 FATsecs=128 RootCluster=2 FSInfo=1 Backup=2 | ||
行 74: | 行 76: | ||
$ cp / | $ cp / | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | 詳細→[[blog: | ||
+ | </ | ||
起動用のUEFIスクリプトを書く。 | 起動用のUEFIスクリプトを書く。 |