
開発用の Amazon EC2 インスタンスで Fedora を実行しています。最近、Fedora 8 から Fedora 15 に移行しました。「cat /etc/fstab」を実行すると、Fedora 15 で次の内容が表示されることに気付きました。
LABEL=79d3d2d4 / ext4 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
古い Fedora 8 インスタンスで「cat /etc/fstab」を実行すると、次のようになります。
/dev/sda1 / ext3 defaults 1 1
/dev/sda2 /mnt ext3 defaults 0 0
/dev/sda3 swap swap defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
Linux に関する私の理解では、ルート ドライブは常に /dev/sda1 にあると思っていました。そのため、Fedora 8 の fstab は私にとっては理にかなっています。
Fedora 15 のファイルシステムが異なるのはなぜですか? /dev/sda1 がルートとしてマウントされないのはなぜですか? また、Fedora 15 では /mnt と /swap はどこに行ったのですか? Fedora 15 で問題はありませんが、変更点を理解し、よりよく理解しようとしています。
答え1
最初のエントリはおそらく を参照しています。sda1
同じディスクが常にsda1
想定どおりであるとは限らないため、ラベルまたは UUID を使用することが標準になっています。たとえば、カーネルをアップグレードし、ドライバーの小さな変更によってディスク コントローラー ドライバーが新しい順序でロードされるとします。突然、sda
以前と同じ状態になりsdb
、その逆も起こります。別の例として、差し込まれた USB デバイスは、前回挿入されたときに使用したドライブではなく、次に使用可能なドライブを使用します。UUID またはラベル マッピングを使用すると、特定の USB ドライブのマウント ポイントを作成できます。
swapと/mntについて: swapまたは/mntボリュームが接続されていません。Amazon EC2イメージを使用している場合は、この検索チャートインスタンスに付属する一時ストレージが一覧表示されます (無料)。使用するインスタンス タイプに swap または /mnt ボリュームが表示される場合は、それらを fstab に追加します。
/mnt
は汎用ストレージスペースですが、スワップはメモリキャッシュ用です。スワップなしでアプリのパフォーマンスが低下する場合は、次のようにローカルファイルを追加できます。
dd if=/dev/zero of=/swapfile bs=1024 count=`echo ${NUM_MEGS}*1024|bc`
mkswap /swapfile
echo /swapfile swap swap defaults 0 0 >> /etc/fstab
答え2
ルート ドライブは /dev/sda1 である必要はなく、任意のドライブにすることができます。これが、UNIX ファイルシステムに柔軟性を与えている理由です。
F8 インスタンスで実行した方法では、デバイスが SCSI ID (またはバス順序) に基づいて名前付けされるという問題があります。たとえば、ID 4 の SCSI ドライブがあり、それがシステム上の唯一のドライブであるとします。このドライブは /dev/sda を取得し、すべてが機能します。次に、新しいドライブを追加して、SCSI ID 3 を設定すると、新しいドライブは /dev/sda になり、古いドライブは /dev/sdb になり、fstab のすべての値が無効になります。
ドライブにラベルを付けてラベルでマウントすると、バスの順序を気にしなくてもよくなり、物理アドレスが何であっても常にマウントされます。UUID でも同じことができます。 を実行すると、これらの値を確認できますtune2fs -l /dev/sda
。ラベルの付いたドライブが実際には /dev/sda1 をマウントしている可能性は十分にあります。
答え3
Linux では、永続的な命名にはさまざまなスキームがあります。
- デバイス名: /dev/sd[abc]x
- LABEL: ファイルシステムのラベル
- UUID: 各ファイルシステムの一意の識別子
以下の方法で確認するblkid
か、以下をご覧ください/dev/disk
:
# blkid /dev/sda3
/dev/sda3: LABEL="/" UUID="dfe84dbf-d7fd-4038-872c-6dfc31f0be6f" TYPE="ext3" SEC_TYPE="ext2"
# ls -lF /dev/disk/by-label/
total 0
lrwxrwxrwx 1 root root 10 May 10 15:02 boot -> ../../sda1
lrwxrwxrwx 1 root root 10 May 10 15:02 SWAP-sda2 -> ../../sda2
# ls -lF /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 10 15:02 588a12e5-a032-43e7-a21c-99a1ddacd6fb -> ../../sda1
lrwxrwxrwx 1 root root 10 May 10 15:02 dfe84dbf-d7fd-4038-872c-6dfc31f0be6f -> ../../sda3
swap
インストール時にパーティションが存在する場合と存在しない場合があります。