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_customGRUB 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.cfgIキーを押して編集モードに入り、構成ファイル内の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,115200n8Escキーを押して編集モードを終了します。:wqと入力し、Enter キーを押してファイルを保存して閉じます。(オプション) 変更後に次のコマンドを実行して構成ファイルを表示します。
GRUB構成ファイルで構成されているディスクパーティション識別子がすべて UUID に変更されていることを確認します。sudo cat /boot/grub2/grub.cfg
参照
fstab ファイルを構成してデータディスクをマウントする方法については、「fstab ファイルで UUID を構成してデータディスクを自動的にマウントする」をご参照ください。