GRUB
は、オペレーティングシステムを起動するために使用されるプログラムです。 UUID
またはデバイス名を GRUB 構成ファイルのディスクパーティション識別子として使用できます。 このトピックでは、GRUB
構成ファイルのディスクパーティション識別子を UUID
に変更する方法について説明します。
背景情報
GRUB
構成ファイルで、デバイス名(/dev/vda1
など)を使用してディスクパーティションを識別する場合、イメージのインポート後のインスタンスの起動などの操作により、デバイス名が変更される可能性があります。 指定された UUID
がディスクパーティションの実際の UUID
と一致しない場合、システムの起動時にカーネルがファイルシステムのロードに失敗する可能性があります。 これにより、システムの起動に失敗する可能性があります。
手順
GRUB
構成ファイルのルートファイルシステムのディスクパーティション識別子をプログラムが読み取れるようにするために、構成ファイルで UUID
を使用してディスクパーティションを識別することをお勧めします。 手順:
GRUB 構成の変更はリスクの高い操作です。 操作が不適切な場合、インスタンスが起動に失敗する可能性があります。 この操作を実行する前に、データセキュリティを確保するために、インスタンスの スナップショットを作成 したことを確認してください。
GRUB バージョンを確認する
GRUB
プログラムには、GRUB2
と GRUB Legacy
の 2 つのバージョンがあります。 GRUB Legacy は、時折発生するバグ修正を除き、開発と保守は行われていません。 現在の GRUB
バージョンを確認するには、次の手順を実行します。
次の方法を参照して、GRUB バージョンを確認します。
GRUB2
次のコマンドを実行して、
GRUB
構成ファイルの構造を表示します。sudo ls /etc/grub.d/
次のコマンド出力が返されます。 出力に
00_header
や40_custom
などのコンテンツが含まれている場合は、GRUB2
を使用しています。00_header 05_debian_theme 10_linux 20_linux_xen 30_os-prober 30_uefi-firmware 40_custom 41_custom
GRUB Legacy
次のコマンドを実行して、
/boot
ディレクトリにある構成ファイルの構造を表示します。sudo ls /boot/grub/
/boot/grub
ディレクトリが存在し、menu.lst
という名前のファイルが含まれている場合は、GRUB Legacy
を使用しています。
GRUB 構成ファイルを確認する
GRUB2
と GRUB Legacy
は構成ファイルが異なります。
GRUB2
:構成ファイルは通常、/boot/grub/grub.cfg
または/boot/grub2/grub.cfg
にあります。GRUB Legacy
:構成ファイルは通常、/boot/grub/menu.lst
または/boot/grub/grub.conf
にあります。
前の例を参照して /boot
ディレクトリに移動し、GRUB
構成ファイルを確認できます。
ディスク情報を取得する
GRUB
構成ファイルの変更で後ほど使用するために、現在のインスタンスのディスクパーティション情報を取得する必要があります。 手順:
次のコマンドを実行して、現在のインスタンスのディスクパーティション情報を表示します。
sudo blkid
次のコマンド出力が返されます。
/dev/vda1: LABEL="/" UUID="e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645" TYPE="ext4" PARTUUID="0efbxxxx-01"
上記の出力は、
/dev/vda1
デバイスのUUID
がe7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645
であることを示しています。
GRUB 構成ファイルを変更する
次のコマンドを実行して、現在の
GRUB
構成ファイルをバックアップします。sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
重要GRUB 構成ファイルを修正前の状態に復元する場合は、次のコマンドを実行します。
sudo cp -f /boot/grub2/grub.cfg.bak /boot/grub2/grub.cfg
次のコマンドを実行して、
GRUB
構成ファイルを開きます。sudo vim /boot/grub2/grub.cfg
I
キーを押して編集モードに入り、構成ファイル内のroot=/dev/vda1
のすべてのインスタンスをroot=UUID=e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645
に置き換えます。linux /boot/vmlinuz-3.16.0-4-amd64 root=/dev/vda1 ro single debian-installer=en_US net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8
変更後のコンテンツ:
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645 ro single debian-installer=en_US net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8
Esc
キーを押して編集モードを終了します。:wq
と入力し、Enter キーを押してファイルを保存して閉じます。(オプション) 変更後に次のコマンドを実行して構成ファイルを表示します。
GRUB
構成ファイルで構成されているディスクパーティション識別子がすべて UUID に変更されていることを確認します。sudo cat /boot/grub2/grub.cfg
参照
fstab ファイルを構成してデータディスクをマウントする方法については、「fstab ファイルで UUID を構成してデータディスクを自動的にマウントする」をご参照ください。