debain11が起動できなくなりました。debian live usbで起動して、復元したい日付のディレクトリへ入り、たとえば
$ sudo btrfs sub snap @home /media/user/debian/@home
という感じで直そうと思った。
と出てマウントできない。検索するとCan’t read superblock
スーパーブロックを読み取れません
https://www.linuxbabe.com/desktop-linux ... lock-error
Recover superblock on btrfs filesystem
Then you need to run the following command to clear the filesystem log tree.
user@debian:~$ sudo btrfs rescue zero-log /dev/sda2
Clearing log on /dev/sda2, previous log_root 94535680, level 0
user@debian:~$
これでマウントできた。しかしERROR: cannot snapshot '@': Read-only file system
debain11のハードドライブ内のディレクトリ?ファイル?はコピーもできない。
-------------------------------------------------
ハードドライブの障害と考え ddrescue を使おうと考えました。2台のHDD を接続してdebian live usbで起動
Disk /dev/sda: 160GB
Disk /dev/sdb: 320GB
user@debian:~$ sudo apt update
user@debian:~$ sudo apt install gddrescue
user@debian:~$ sudo parted -l
Model: ATA ST3160815AS (scsi)
Disk /dev/sda: 160GB
Number Start End Size Type File system Flags
1 1049kB 135MB 134MB primary fat32 lba
2 135MB 160GB 160GB primary btrfs
drescue [オプション] [読込元] [書き出し先] [ログ出力先]
>$ ddrescue -f -d -r1 -v /dev/sda /dev/sdb logfile.log
オプション 概要
-f 上書き※ターゲットが物理ディスクでは必須
-n リードエラーを無視
-v 詳細表示
-r 不良セクタの再読み込み回数
-d ダイレクトアクセス(キャッシュを介さずにアクセス)
user@debian:~$ sudo parted -l
Model: ATA ST3160815AS (scsi)
Disk /dev/sda: 160GB
Number Start End Size Type File system Flags
1 1049kB 135MB 134MB primary fat32 lba
2 135MB 160GB 160GB primary btrfs
Model: ATA HGST HTS545032A7 (scsi)
Disk /dev/sdb: 320GB
Number Start End Size File system Name Flags
1 1049kB 200MB 199MB fat32 EFI boot, hidden, esp
2 200MB 318GB 318GB btrfs debian
3 318GB 320GB 2147MB linux-swap(v1) SWAP swap
破損したほうソース
Disk /dev/sda: 160GB
ターゲット
Disk /dev/sdb: 320GB
user@debian:~$ ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 9 Sep 23 13:27 ata-HGST_HTS545032A7E680_RB240EMP06TZHH -> ../../sdb
lrwxrwxrwx 1 root root 10 Sep 23 13:27 ata-HGST_HTS545032A7E680_RB240EMP06TZHH-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Sep 23 13:27 ata-HGST_HTS545032A7E680_RB240EMP06TZHH-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Sep 23 13:27 ata-HGST_HTS545032A7E680_RB240EMP06TZHH-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 9 Sep 23 13:27 ata-ST3160815AS_6RX65VV6 -> ../../sda
lrwxrwxrwx 1 root root 10 Sep 23 13:27 ata-ST3160815AS_6RX65VV6-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Sep 23 13:30 ata-ST3160815AS_6RX65VV6-part2 -> ../../sda2
参考ページの例
$ ddrescue -f -d -r1 -v /dev/sda /dev/sdb logfile.log
自分に当てはめると
$ ddrescue -f -r3 -v /dev/sda /dev/sdb logfile.log
$ sudo ddrescue -f -r3 -v ata-ST3160815AS_6RX65VV6 ata-HGST_HTS545032A7E680_RB240EMP06TZHH logfile.log
by-id はヒューマンエラー防止のためですね。頭がボケてるとき、
ハードディスクの製品型番で気づくために?
> /dev/disk/by-id/ドライブの型番
$ sudo ddrescue -f -r3 -v /dev/disk/by-id/ata-ST3160815AS_6RX65VV6 /dev/disk/by-id/ata-HGST_HTS545032A7E680_RB240EMP06TZHH logfile.log
-------------------------------------------------------------------
今回は サルベージしたいドライブ/dev/sda のイメージファイルをDisk /dev/sdb: 320GBのsdb2のパテへ吐き出したい。コマンドがわかりません。
--------------------------------------------------------------------