ファイルサイズの制限

近年、ゲノムや発現プロファイルなどの情報が数多く利用できるようになり、
解析結果を出力するファイルさえ、数ギガを超えることもある。
今日も解析結果を出力していると、ファイルサイズが4Gに達した時点で
エラーを出力してしまった?
いつもの通りWikipedia先生で調べてみると
http://ja.wikipedia.org/wiki/ファイルシステム
ファイルシステムによりファイルサイズの最大値が決まっているようだ。
そこでファイル出力したデバイスファイルシステムを調べてみることに
(以下のコマンドはすべてルート権限になってから行ってます)

[root@machineA]/home/user_a# df -hT
Filesystem Type サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
ext3 66G 17G 46G 27% /
/dev/sda2 ext3 99M 48M 47M 51% /boot
none tmpfs 1004M 0 1004M 0% /dev/shm
/dev/sdb1 ext3 135G 37G 92G 29% /home
/dev/sdc5 vfat 280G 32G 280G 12% /media/usbdisk

出力先は外付けHDDの/media/usbdisk/なのでファイルシステムはvfatだ。
Wikipediaの表にはvfatは載っていなかったが、たぶんfat32と同じ4Gだろう。
今のHDDは外付けHDDをUSB接続しただけでマウントできるよう、デフォルトで
FATファイルシステムに設定してあるようだ。
ext3ならファイルサイズの最大が16G~2TBなのでext3に変更してみよう!
まずデータのバックアップをとって、外付けHDDのアンマウントをする。

[root@machineA]/home/user_a# mkdir backup
[root@machineA]/home/user_a# mv /media/usbdisk /home/user_a/backup/*
[root@machineA]/home/user_a# umount /dev/sdc5

アンマウントできたか確認し、もう一度外付けHDDをマウントしてみると

[root@machineA]/home/user_a# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
68312632 16975236 47867268 27% /
/dev/sda2 101105 48442 47442 51% /boot
none 1027520 0 1027520 0% /dev/shm
/dev/sdb1 141383156 37903508 96297792 29% /home
[root@machineA]/home/user_a# mount -t ext3 /dev/sdc5 /media/usbdisk
mount: 間違ったファイルシステムタイプ、不正なオプション、
/dev/sdc5 のスーパーブロックが不正、或いはファイルシステムのマウント
が多すぎます

あれっ、マウントできん(ToT)
っと悩んでいるとポスドクさんから、
「mkfsしてファイルシステムを作成しなきゃダメだよ!」
っと、
mkfs (?_?)
Googleで検索してみるとどうやらそのようなファイルシステム作成コマンドがあるら
しい。
http://www.linux.or.jp/JM/html/util-linux/man8/mkfs.8.html
http://www.linux.or.jp/JM/html/e2fsprogs/man8/mke2fs.8.html
またmkfs.ext3というのもあるようだ。
そこでmkfs.ext3コマンドでファイルシステムを作り、再び/media/usbdiskにマウント
してみると

[root@machineA]/home/user_a# /sbin/mkfs.ext3 /dev/sdc5
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
36634624 inodes, 73256392 blocks
3662819 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
2236 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information:
done

This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@machineA]/home/user_a#
[root@machineA]/home/user_a# mount -t ext3 /dev/sdc5 /media/usbdisk
[root@machineA]/home/user_a# df -hT
Filesystem Type サイズ 使用 残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
ext3 66G 17G 46G 27% /
/dev/sda2 ext3 99M 48M 47M 51% /boot
none tmpfs 1004M 0 1004M 0% /dev/shm
/dev/sdb1 ext3 135G 37G 92G 29% /home
/dev/sdc5 ext3 276G 95M 262G 1% /media/usbdisk

やったext3になった(^o^)v
一応/etc/fstabの方も以下のように編集して

# This file is edited by fstab-sync - see 'man fstab-sync' for details
.....
/dev/sdc5 /media/usbdisk ext3 defaults,noatime 0 0
.....