質問 :ファイル システムの種類を特定するにはどうすればよいですか?現在のファイル システムを最新の ext4 にアップグレードしたいと考えています。その前に、UNIX システムにあるさまざまなマウント ポイントの現在のファイル システム タイプを知りたいです。
答え :下記の 5 つの方法のいずれかを使用して、ファイル システムの種類を特定します。
方法 1:df -T コマンドを使用する
df コマンドの -T オプションは、ファイル システムのタイプを表示します。
# df -T | awk '{print $1,$2,$NF}' | grep "^/dev" /dev/sda1 ext2 / /dev/sdb1 ext3 /home /dev/sdc1 ext3 /u01
方法 2:マウント コマンドを使用する
以下に示すようにマウント コマンドを使用します。
# mount | grep "^/dev" /dev/sda1 on / type ext2 (rw) /dev/sdb1 on /home type ext3 (rw) /dev/sdc1 on /u01 type ext3 (rw)
上記の例に示すように:
- /dev/sda1 は ext2 ファイル システム タイプです。 (/としてマウント)
- /dev/sdb1 は ext3 ファイル システム タイプです。 (/home としてマウント)
- /dev/sdc1 は ext3 ファイル システム タイプです。 (/u01 としてマウント)
方法 3:file コマンドを使用する
root として、以下に示すように file コマンドを使用します。個々のデバイス名を file コマンドに渡す必要があります。
# file -sL /dev/sda1 /dev/sda1: Linux rev 1.0 ext2 filesystem data (mounted or unclean) (large files) # file -sL /dev/sdb1 /dev/sda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery)(large files) # file -sL /dev/sdc1 /dev/sda1: Linux rev 1.0 ext3 filesystem data (needs journal recovery)(large files)
注意 :ファイル コマンドは root ユーザーとして実行する必要があります。 root 以外のユーザーとして実行した場合でも、何らかの出力が得られます。ただし、以下に示すように、ファイル システムの種類は表示されません。
$ file -sL /dev/sda1 /dev/sda1: writable, no read permission
方法 4:/etc/fstab ファイルを表示する
システムの起動時に特定のマウント ポイントが自動的にマウントされるように構成されている場合は、/etc/fstab ファイルを調べることで、そのファイル システムの種類を特定できます。
以下の例に示すように、/ は ext2、/home は ext3、/u01 は ext3 です。
# cat /etc/fstab LABEL=/r / ext2 defaults 1 1 LABEL=/home /home ext3 defaults 0 0 LABEL=/u01 /u01 ext3 defaults 0 0
方法 5:fsck コマンドを使用する
以下のように fsck コマンドを実行します。これにより、特定のデバイスのファイル システム タイプが表示されます。
# fsck -N /dev/sda1 fsck 1.39 (29-May-2006) [/sbin/fsck.ext2 (1) -- /] fsck.ext2 /dev/sda1 # fsck -N /dev/sdb1 fsck 1.39 (29-May-2006) [/sbin/fsck.ext3 (1) -- /home] fsck.ext3 /dev/sdb1 # fsck -N /dev/sdc1 fsck 1.39 (29-May-2006) [/sbin/fsck.ext3 (1) -- /u01] fsck.ext3 /dev/sdc1
root アクセス権を持っていないが、ファイル システムの種類を特定したい場合は、上記のように /sbin/fsck -N を使用してください。