だからbtrfsのルートファイルシステムは少し破損しています。起動すると、ルートの読み取り/書き込みマウントが失敗し、ファイルシステムが読み取り専用でマウントされます。私が読んでいるファイルはすべてうまく機能しているようです。
ローカルスナップショットがたくさんあります。破損によってすべてのファイルが影響を受けないことを願っています。問題を解決するために、より大胆な対策を講じる前に、できるだけ多くのファイルを外部バックアップディスクにコピーしたいと思います。しかし、btrfs send
それは失敗しました-30 (Read-only file system)
。
btrfs send
もし送るファイルシステムは読み取り専用でマウントされていますか?そこに何も書く必要がないようですので、これは私を驚かせます。- それでは、
btrfs send
転送ファイルシステムが実際に記録されているのか、それともこのチェックを実行する他の理由がありますか? - 解決策はありますか?現時点ではスナップショットを再同期する予定ですが、当然のことながらはるかに遅くなります。
(他のことを扱うのが難しい場合は、上記のいずれか1つだけを扱う回答に投票します。)
答え1
私は私のVMでこれをテストしましたztest
(zfs、btrfs、mdadm、lvmなどの項目をテスト/練習するために使用します)。 VM には、/dev/vda から /dev/vdo まで 15 x 100 MB の仮想ドライブが接続されています。私が実行しているテストタイプに比べて規模が大きい必要はありません)。
とにかく、読み取り専用btrfsマウントのサブボリュームを別のfs(/ tank1、ZFS)のファイルに送信できました。例えば
# df -Th /b1
Filesystem Type Size Used Avail Use% Mounted on
/dev/vdb1 btrfs 190M 7.3M 148M 5% /b1
# btrfs filesystem show /b1
Label: none uuid: a5217930-73a9-4481-a14a-2c1974b3f2db
Total devices 2 FS bytes used 4.00MiB
devid 1 size 190.00MiB used 104.00MiB path /dev/vdb1
devid 2 size 190.00MiB used 104.00MiB path /dev/vdc1
# mount -o ro,remount /b1
# mount | grep /b1
/dev/vdb1 on /b1 type btrfs (ro,relatime,space_cache,subvolid=5,subvol=/)
# btrfs send /b1/sv1_20160506 -f /tank1/b1.send
At subvol /b1/sv1_20160506
# ls -l /tank1/b1.send
-rw-rw-r-- 1 root root 2177404 Jun 7 01:24 /tank1/b1.send
これがあなたのシステムでうまくいかない理由について2つの可能性を考えることができます(しかし他の場合もあり、それらのどれも必ずしも正確ではありません)。
btrfsを作成する必要があり
/tmp
、/tmp
サブディレクトリにすることもできます/
。その可能性は低いですが、ramdiskにtmpfsをマウントすることは価値があるかもしれません/tmp
。btrfs fsが破損しているため、btrfsが
/
正しく機能しません。
どちらの場合も、可能な解決策は回復CD / DVD / USBなどから起動することです。btrfs サポートあり(割れたそしてクロンジラ良いオプションです)btrfs send
そこでスナップショットを撮ってください(外部バックアップディスクをRWに手動でマウントした後)。