Crucial m4 SSDの故障
Arch Linuxが入っていたSSD (Crucial m4 CT512M4SSD2)が故障したっぽい。pacmanでパッケージアップデートしていたら、突然GUIが落ちてCUI画面に切り替わり、以下のようなInput/outputエラーが延々と出るようになった。[333311.366625] systemd-journald[245]: Failed to rotate /var/log/journal/6459213c1d6743478b95723dff97eb1c/system.journal: Input/output error [333311.366625] systemd-journald[245]: Failed to rotate /var/log/journal/6459213c1d6743478b95723dff97eb1c/user-1000.journal: Input/output error [333311.366625] systemd-journald[245]: Failed to open /var/log/journal/6459213c1d6743478b95723dff97eb1c/system.journal: Input/output error [333311.366625] systemd-journald[245]: Failed to write entry (9 items, 261 bytes), ignoring: Input/output error ...
カーネルアップデートをしていたので、どうせカーネルイメージの作成に失敗したんだろうと高をくくっていたが、色々あがいても再びOSを起動させることはできなかった。幸い/homeのパーティションは生きていたので、必要なデータは救出することができた。今回の故障から、/home用のパーティションはルートパーティションから区切っておいてよかったと思った。
SSDのパーティションは以下のようにしていた。
- sda1: /boot (FAT32)
- sda2: swap
- sda3: / (XFS)
- sda4: /home (XFS)
試行錯誤のログ
データ救出とパーティションの修復
PCの電源ボタンで電源を切り、再度起動させてみると以下のようなエラーが出る。sda3はマウントできなくなっている様子。starting version 229 /sbin/fsck.xfs: XFS file system. [1.486072] XFS (sda3): Internal error XFS_WANT_CORRUPTED_RERURN at line 141 of file fs/xfs/libxfs/xfs_dir2_data.c. Caller xfs_dir3_data_verify+0x8f/0xa0 [xfs] [1.486553] XFS (sda3): Metadata corruption detected at xfs_dir3_data_write_verify+0xef/0x100 [xfs], block 0x50fe8 [1.486602] XFS (sda3): Unmount and run xfs_repair [1.486633] XFS (sda3): First 64 bytes of corrupted metadata buffer: [1.486665] ffff880037db3000: 58 44 44 33 dd 8e 05 01 00 00 00 00 00 00 05 0f e8 XDD3.......... ... [1.486840] XFS (sda3): Corruption of in-memory data detected. Shutting down filesystem [1.486884] XFS (sda3): Please umount the filesystem and rectify the problem(s) mount: mount /dev/sda3 on /new_root failed: Structure needs cleaning You are now being dropped into an emergency shell. sh: can't access tty; job control turned off [rootfs /]#
雲行きが怪しくなってきたので、Live CDを使ってストレージ用のHDDへ/home以下のデータをコピーした。幸い、/homeをマウントポイントとしていたsda4はマウントできた。
さらに、マウントできなくなっているsda3の修復を試みた。Live CDで起動したArch Linuxから、xfs_repairした。xfs_repairによってデータが破損する可能性があるので、xfs_repairを実行する前に、必要なデータは救出しておく。
# xfs_repair -L /dev/sda3
すると、disconnected inodeがいくつか検出されて、lost+foundに移された。OSが起動できるようになったか確認するために、PCを再起動してみたが、やはりfsckが通らずエラーが出る。
starting version 229 /sbin/fsck.xfs: XFS file system. mount: wrong fs type, bad option, bad superblock on /dev/sda3, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. You are now being dropped into an emergency shell. sh: can't acess tty; job control turned off [rootfs /]#
カーネルイメージの再作成
マウントできなかったsda3は先のxfs_repairによりマウントできるよになったので、「Arch Linuxが起動しない」の記事に従って、Live CDを使ってカーネルイメージの再作成を行った。SSD側のシステムにchrootして、pacmanなどを使ってみると一応使える。しかし、ldconfigで「File /usr/lib/xxx.so is empty, not checked.」が大量に出ており、xfs_repairによりいくつか既存のファイルが壊れた様子。
ライブラリを再インストールしようと思い、とりあえず、pacmanのデータベースを更新しようとしたらここでもエラーが出た。
# pacman -Syy :: Synchronizing package databases... error: failed to update core (unable to lock database) error: failed to update extra (unable to lock database) ... if you're sure a package manage is not already running, you can remove /var/lib/pacman/db.lck
/var/lib/pacman/db.lckを消せとのことなので、消したらpacman -Syyは通るようになった。
# rm /var/lib/pacman/db.lck
# pacman -Syy :: Synchronizing package databases... core extra community archlinuxfr
次にpacmanから、base, base-develを再インストールする。pacmanは正常に動作して、base, base-develパッケージはインストールできた。
# pacman -S base base-devel
mkinitcpioも通った。
# mkinitcpio -p linux ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: ... ... ==> Image generation successful
chrootを抜け出して、PCを再起動したが、まだエラーが出る。
starting version 229 ERROR: device 'UUID=xxxxx-xxxxx-xxxxx-xxxxx' not found. Skipping fsck. You are being dropped to a recovery shell Type 'exit' to try and continue booting sh: can't access tty; job control turned off [rootfs /]#
xfs_repairして、sda3のUUIDが変わったのかと思って再度Live CDからchrootして/etc/fstabと/dev/disk/by-uuid/から、UUIDが合っているか確認したが問題なかった。打つ手がなくなってきたので、とりあえずもう一度xfs_repairしてみて、再起動。するとエラーの内容が変わった。
starting version 229 /sbin/fsck.xfs: XFS file system. mount: wrong fs type, bad option, bad superblock on /dev/sda3, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. You are now being dropped into an emergency shell. sh: can't access tty; job control turned off [rootfs /]#
rootfsからマウントしようとしても、やはりwrong fs type, bad option, bad superblock on /dev/sda3, missing codepage or helper program, or other errorが出てマウントできなかった。exitすると、カーネルパニックが起きるという状況。さすがに、ここまできたら諦めて予備のSSDに新したにArch Linuxをインストールすることにした。
参考:
[1]XFS - ArchWiki
スポンサーリンク
0 件のコメント:
コメントを投稿