ディスクのデバイスノード名 (/dev/sda、/dev/hda、/dev/vda など) は、状況によって変わる場合があります。たとえば、ケーブルを交換したり、特定のパッケージをアップグレードしたりした後、sda と sdc の場所が入れ替わる可能性があります。これにより、/etc/fstab がディスク名でファイルシステムを参照するときに問題が発生します。代わりに、ファイルシステム ラベルを使用して、/etc/fstab ファイルでそれらを参照できます。これにより、一時的なブロック デバイス名に頼ることなく、ファイル システムを識別することができます。
注意 注:デフォルトの RHEL インストールのように、ファイルシステムが LVM 論理ボリューム上に存在する場合、UUID とラベルは必要ありません。ファイルシステムの現在のラベルを確認
1. ファイルシステムのラベルを見つけるには、以下に示すように「blkid」コマンドを使用できます。
# blkid /dev/sda1 /dev/sda1: LABEL="/boot" UUID="c9fdb384-19ed-4b94-b29e-23f0f566e970" TYPE="ext4"
2. /etc/fstab ファイル内のどのファイルシステムが、実際のデバイス名ではなく LABEL によって参照されているかを判別することもできます。例:
# cat /etc/fstab LABEL="/boot" /boot ext4 defaults 1 2 UUID="80a27dc2-c309-4cc8-9ceb-3bb1a055cf3d" /data ext4 defaults 0 2
3. さらに、非 LVM デバイス ノード名の使用について、/etc/grub.conf のカーネル引数行を確認することもできます。
# grep kernel /etc/grub.conf kernel /vmlinuz-2.6.18-308.el5 ro root=/dev/vda2
オンラインでのファイルシステム ラベルの変更
e2label コマンドを使用して、ext2、ext3、および ext4 ファイルシステムのラベルを設定/変更できます。コマンドを使用するための構文は簡単です:
# e2label Usage: e2label device [newlabel]
たとえば、パーティション /dev/sda1 のラベルを /boot に変更するには、次のコマンドを使用します:
# e2label /dev/sda1 /boot
既存のラベルを変更する場合は、/etc/fstab および /etc/grub.conf 内の古いラベルへの参照を必ず更新し、それに応じて変更してください。
# grep LABEL /etc/grub.conf kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/
# grep LABEL /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2
スワップ デバイスに関する注意
スワップ パーティションにラベルを追加/変更するには、「swapoff [DEVICE]」でオフにし、「mkswap -L [LABEL] [DEVICE]」で再作成してから、「swapon [DEVICE]」でオンに戻す必要があります。スワップ UUID は、RHEL6 以降でのみ可能です。詳細については、mkswap の man ページを参照してください。
# man mkswapCentOS / RHEL :ファイルシステムの UUID を変更する方法