やっぱLinux FAT32 (vfat) ドライバのバグだと思うんだが
id:flalin:20110205:1296890520 の続き:
$ dmesg|tail -n 30 (略 [967071.528058] usb 1-6: new high speed USB device using ehci_hcd and address 11 [967071.671125] usb 1-6: New USB device found, idVendor=0bda, idProduct=0158 [967071.671134] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [967071.671140] usb 1-6: Product: USB2.0-CRW [967071.671145] usb 1-6: Manufacturer: Generic [967071.671150] usb 1-6: SerialNumber: 20071114173400000 [967071.676588] scsi7 : usb-storage 1-6:1.0 [967072.679904] scsi 7:0:0:0: Direct-Access Generic- Multi-Card 1.00 PQ: 0 ANSI: 0 CCS [967073.270665] sd 7:0:0:0: [sdc] 7744512 512-byte logical blocks: (3.96 GB/3.69 GiB) [967073.271399] sd 7:0:0:0: [sdc] Write Protect is off [967073.271407] sd 7:0:0:0: [sdc] Mode Sense: 03 00 00 00 [967073.273285] sd 7:0:0:0: [sdc] No Caching mode page present [967073.273293] sd 7:0:0:0: [sdc] Assuming drive cache: write through [967073.277141] sd 7:0:0:0: [sdc] No Caching mode page present [967073.277151] sd 7:0:0:0: [sdc] Assuming drive cache: write through [967073.281217] sdc: sdc1 [967073.285055] sd 7:0:0:0: [sdc] No Caching mode page present [967073.285069] sd 7:0:0:0: [sdc] Assuming drive cache: write through [967073.285080] sd 7:0:0:0: [sdc] Attached SCSI removable disk [967073.727495] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! $ mount (略 /dev/sdc1 on /media/usb0 type vfat (rw,noexec,nosuid,nodev,sync,noatime,dmask=0000,fmask=0111) $ ls /media/usb0 many/ many1/ $ cd /media/usb0/many1 $ /bin/ls -f|wc -l 65536 $ rm 65534.DAT $ touch 65534.DAT touch: cannot touch `65534.DAT': デバイスに空き領域がありません
こんなの絶対おかしいよ
(ディレクトリ many
内の65534個の通常ファイルはWindows XP SP3上でRubyスクリプトで生成した)
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux testing (wheezy) Release: testing Codename: wheezy $ uname -a Linux zbox 2.6.38-2-amd64 #1 SMP Sun May 8 13:51:57 UTC 2011 x86_64 GNU/Linux
友人に「使いもせずにHaskellをdisるなんて! 1万行くらい書いてからじゃないと」って煽られてるので,FAT32デバイスをダンプするツールをクリーンルーム実装してみっかな.(本当はもう少しスマートに,Linuxのファイルシステムのソースをコピってそのままユーザ空間でリンクし,ファイルシステムの中をコマンドでいじれるようなツールを書きたい)