web-dev-qa-db-ja.com

EFIとブートパーティションを移動する方法は?

私はこれら2つのパーティションをそれぞれsda5とsda6からsda1とsda2に移動している最中です。これは、ルートファイルシステムを拡張するための連続したスペースを確保するためです。以下は、私がこれまでに行ったことです。

  • gdiskを使用してEFIシステムのパーティションsda1を作成します
  • gdiskを使用してブート用のパーティションsda2を作成します
  • ddを使用してsda5のコンテンツをsda1にコピーします
  • ddを使用してsda6のコンテンツをsda2にコピーします
  • partedを使用して、古いEFIシステムsda5のブートフラグを削除します。

以下は私が今持っているものです(# parted -l):

Number  Start   End    Size    File system  Name                  Flags
 1      1049kB  211MB  210MB   fat16        EFI System            boot
 2      211MB   735MB  524MB   ext4         Microsoft basic data
 4      200GB   250GB  50GB
 5      250GB   250GB  210MB   fat16        EFI System Partition
 6      250GB   251GB  524MB   ext4
 7      251GB   481GB  230GB                                      lvm

再起動時に、表示されたブートメニューは、ブートフラグをオフにしても、sda5の古いEFIシステムパーティション内にあるものに関連付けられたままです。ここからさらに進めるには?

8

共有するために、これは私がやったことです:

すべてのファイルがすでにあるため、grub-installを実行する必要はありません。続いて行う必要があるのは、EFIブートマネージャーを使用してshim.efiブートローダーをポイントするパーティションsda1で新しいブートオプションを作成することです。

# efibootmgr -c -L Fedora -l \\EFI\\Fedora\\shim.efi

次に、そのブート位置を確認します(不明な場合は、blkidを使用してPARTUUIDを参照してください)。

# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0000,0002,0001
Boot0000* Fedora    HD(1,800,64000,<PARTUUID>)File(\EFI\Fedora\shim.efi) <= NEW
...

そしてそれがシーケンスの最初のブートローダーであることを確認してください:

# efibootmgr -o 0000,0002,0001,0004

Grubの場合、/bootの場所のすべてのインスタンスを新しいパーティションを指すように変更する必要があります。

# vi /boot/efi/EFI/Fedora/grub.cfg

....
search --no-floppy --fs-uuid --set = root --hint-bios = hd0、gpt6 --hint-efi = hd0、gpt6 --hint-baremetal = ahci0、gpt6
....

「gpt6」を検索して「gpt2」に置き換えます(/ bootがsda6からsda2に移動された場合)

UUIDの重複が原因でOSが古い/bootおよび/boot/efiパーティションをマウントしないようにするには、fstabを編集します。

# vi /etc/fstab

UUIDの重複する参照をPARTUUID(GPTを使用している場合)またはデバイスノード(/ dev/sda1など)に置き換えます。

再起動すれば完了です。

5

使用する grub-install(ほとんどの場合、追加の引数なしで)新しいレコードを追加します。起動可能であることをテストします。使用する efibootmgr -B古いレコードを削除するには(最初に引数なしで実行してbootnumを見つけます); Rod Smithの記事 をお勧めします。

恥ずかしいプラグイン:あなたが私の レスキュー画像 が何かがうまくいかない場合に役立つかもしれません。

2