それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

OpenWrt (x86-64/ext4)のディスクをメンテナンスした。

OpenWRTが起動して動作してるが、Read Onlyになっていて、ext4 のフォーマットがエラーになっていたので修正する。

[    5.150903] EXT4-fs (vda2): warning: mounting unchecked fs, running e2fsck is recommended
[    5.161300] EXT4-fs (vda2): re-mounted. Opts: (null)
[    5.248627] EXT4-fs (vda1): warning: mounting unchecked fs, running e2fsck is recommended

マウントを見てみると。ro (=read only ) になってる。これを修正する。

/dev/root on / type ext4 (ro,noatime)

一旦停止する

virsh list
virsh shutdown wrt

作業用バックアップを取得

cd  /var/lib/libvirt/images/
cp openwrt-19.07.5-x86-64-combined-ext4.qcow2 work.qcow2

ループバック機能でマウントする。

sudo modprobe nbd max_part=8
sudo qemu-nbd --connect=/dev/nbd0 /var/lib/libvirt/images/work.qcow2
sudo fdisk /dev/nbd0 -l
## 解除するとき
# sudo qemu-nbd -d /dev/nbd0 
# sudo rmmod nbd

ファイルチェックする

sudo e2fsck -n -v /dev/nbd0p1
sudo e2fsck -n -v /dev/nbd0p2
##必要に応じて修正
# sudo e2fsck -p -v /dev/nbd0p1
# sudo e2fsck -p -v /dev/nbd0p2
# 

必要に応じて、容量を拡張ししておく(容量不足でエラーのときもある。)

sudo fdisk /dev/nbd0 # 容量を触る
sudo resize2fs -f -p /dev/nbd0p2     

必要なときは qcow2 自体をリサイズする。

qemu-img resize -f qcow2 work.qcow2 +10M
# resize後は nbd をリロードして、resize2fs する。

ファイルをバックアップしてコピ0

cd  /var/lib/libvirt/images/
cp openwrt-19.07.5-x86-64-combined-ext4.qcow2{,.back}
cp work.qcow2 openwrt-19.07.5-x86-64-combined-ext4.qcow2

起動する

 virsh start --console wrt

起動した。

[    7.211486] procd: - init -
Please press Enter to activate this console.

ストレージもちゃんと動く

たまに、readonlyになってるんだよねぇ。なんでだろう。