2014年2月16日日曜日

btrfs コマンド の「failed to open /dev/fd0」を気にならなくする・・・


btrfs コマンドで、なぜか頻繁に /dev/fd0(FDD)のエラーが表示されます。
しかし、このエラーが表示されていてもコマンドが異常終了したりはしていません。

同じコマンドでも、オプション指定によって出たり・・・
[root@ovnfs3 ~]# btrfs filesystem show /fs02
failed to open /dev/fd0: No such device or address
Label: '/fs02'  uuid: d1a7982b-b9cb-49ac-aaba-3b4945b389bf
        Total devices 2 FS bytes used 10.05GB
        devid    2 size 10.00GB used 7.01GB path /dev/sde
        devid    1 size 10.00GB used 7.03GB path /dev/sdd

Btrfs v0.20-rc1

出なかったりします。
[root@ovnfs3 ~]# btrfs filesystem show --all-devices
Label: '/fs01'  uuid: a0833497-61c0-44c2-a5bc-3e51b8c04f4b
        Total devices 2 FS bytes used 3.35GB
        devid    1 size 40.00GB used 3.03GB path /dev/sdb
        devid    2 size 40.00GB used 3.01GB path /dev/sdc

Label: '/fs02'  uuid: d1a7982b-b9cb-49ac-aaba-3b4945b389bf
        Total devices 2 FS bytes used 10.05GB
        devid    1 size 10.00GB used 7.03GB path /dev/sdd
        devid    2 size 10.00GB used 7.01GB path /dev/sde

Btrfs v0.20-rc1

strace コマンドで見てみると、
エラーが出る方は /proc/partitions にあるデバイスをオープンしようとしていそうですが・・・
[root@ovnfs3 ~]# strace -e open btrfs filesystem show /fs02 2>&1 | cat -n
     1  open("/etc/ld.so.cache", O_RDONLY)      = 3
     2  open("/lib64/libuuid.so.1", O_RDONLY)   = 3
     3  open("/lib64/libblkid.so.1", O_RDONLY)  = 3
     4  open("/lib64/libm.so.6", O_RDONLY)      = 3
     5  open("/lib64/libz.so.1", O_RDONLY)      = 3
     6  open("/usr/lib64/liblzo2.so.2", O_RDONLY) = 3
     7  open("/lib64/libpthread.so.0", O_RDONLY) = 3
     8  open("/lib64/libc.so.6", O_RDONLY)      = 3
     9  open("/proc/partitions", O_RDONLY)      = 3
    10  open("/dev/fd0", O_RDONLY)              = -1 ENXIO (No such device or address)
    11  failed to open /dev/fd0: No such device or address
    12  open("/dev/sr0", O_RDONLY)              = 4
    13  open("/dev/sda", O_RDONLY)              = 4
    14  open("/dev/sda1", O_RDONLY)             = 4
    15  open("/dev/sda2", O_RDONLY)             = 4
    16  open("/dev/sda3", O_RDONLY)             = 4
    17  open("/dev/sdb", O_RDONLY)              = 4
    18  open("/dev/sdc", O_RDONLY)              = 4
    19  open("/dev/sdd", O_RDONLY)              = 4
    20  open("/dev/sde", O_RDONLY)              = 4
    21  open("/proc/partitions", O_RDONLY)      = 3
    22  Label: '/fs02'  uuid: d1a7982b-b9cb-49ac-aaba-3b4945b389bf
    23          Total devices 2 FS bytes used 10.05GB
    24          devid    2 size 10.00GB used 7.01GB path /dev/sde
    25          devid    1 size 10.00GB used 7.03GB path /dev/sdd
    26
    27  Btrfs v0.20-rc1

エラーが出ないほうは、最初から /dev 配下のデバイスをオープンしようとしていて
/proc/partitions は読んでいなそう・・・
[root@ovnfs3 ~]# strace -e open btrfs filesystem show --all-devices 2>&1 | cat -n
     1  open("/etc/ld.so.cache", O_RDONLY)      = 3
     2  open("/lib64/libuuid.so.1", O_RDONLY)   = 3
     3  open("/lib64/libblkid.so.1", O_RDONLY)  = 3
     4  open("/lib64/libm.so.6", O_RDONLY)      = 3
     5  open("/lib64/libz.so.1", O_RDONLY)      = 3
     6  open("/usr/lib64/liblzo2.so.2", O_RDONLY) = 3
     7  open("/lib64/libpthread.so.0", O_RDONLY) = 3
     8  open("/lib64/libc.so.6", O_RDONLY)      = 3
     9  open("/dev", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
    10  open("/dev/ram9", O_RDONLY)             = 4
    11  open("/dev/ram5", O_RDONLY)             = 4
    12  open("/dev/ram6", O_RDONLY)             = 4
(以下略)

/proc/partitions の内容は下記です。
[root@ovnfs3 ~]# cat /proc/partitions
major minor  #blocks  name

   2        0          4 fd0
  11        0    3794060 sr0
   8        0   10485760 sda
   8        1     204800 sda1
   8        2    1048576 sda2
   8        3    9231360 sda3
   8       16   41943040 sdb
   8       32   41943040 sdc
   8       48   10485760 sdd
   8       64   10485760 sde

使用していない floppy のモジュールが読み込まれているので、
それを削除すればエラーは出ません。
[root@ovnfs3 ~]# lsmod | grep fl
zlib_deflate           21991  1 btrfs
floppy                 65361  0 ★これを削除する。
[root@ovnfs3 ~]# rmmod floppy
[root@ovnfs3 ~]# lsmod | grep fl
zlib_deflate 21991 1 btrfs ★floppy は表示されなくなった。
[root@ovnfs3 ~]# cat /proc/partitions
major minor  #blocks  name

  11        0    3794060 sr0 ★先頭にあった fd0 がなくなった。
   8        0   10485760 sda
   8        1     204800 sda1
   8        2    1048576 sda2
   8        3    9231360 sda3
   8       16   41943040 sdb
   8       32   41943040 sdc
   8       48   10485760 sdd
   8       64   10485760 sde

fd0 のエラーも出なくなります。
[root@ovnfs3 ~]# btrfs filesystem show /fs02
Label: '/fs02'  uuid: d1a7982b-b9cb-49ac-aaba-3b4945b389bf
        Total devices 2 FS bytes used 10.05GB
        devid    2 size 10.00GB used 7.01GB path /dev/sde
        devid    1 size 10.00GB used 7.03GB path /dev/sdd

Btrfs v0.20-rc1

以上、fd0 のエラーはあまり気にならなくなりました・・・

0 件のコメント:

コメントを投稿