ddrescureでSDカードの複製を作成する

スポンサーリンク
Linux
スポンサーリンク

dumpコマンドとrestoreコマンドの方法でSDカードの複製を作成していたが、SDカードの劣化ためか複製作成に4時間以上掛かる様になってしまった。
短時間に複製が作成できる方法を探していたらddrescureコマンドを見つけた。

 

スポンサーリンク

ddrescureコマンドをインストールする

パッケージをインストールする。

# dnf -y install ddrescue

 

不要なプロセスを停止する

私だけの環境かもしれないが、複製したMicroSDカードで立ち上げるとエラーになるため、以下のプロセスを停止して複製の作成を行う。

# systemctl stop mrtg.timer
#
# systemctl stop redis
#

 

バックアップを実行する

新しい(月ごとに切り替える)SDカードを接続して、複製作成を行う。
sdbがコピー先のMicroSDカードです(sdcも表示されるが何???)。
表示の右下に実行時間と残り時間が表示される。
ddrescueコマンド起動時は残り時間が2~3時間の表示であったが、今回は7時間掛かってしまった。SDカードにエラーは無い。
MicroSDカードの交換時期かもしれない。

# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0  1.8T  0 disk 
┗sda1        8:1    0  1.8T  0 part /usr/local/dlna
sdb           8:16   1 59.5G  0 disk 
┣sdb1        8:17   1  286M  0 part 
┣sdb2        8:18   1  488M  0 part 
┗sdb3        8:19   1 58.7G  0 part 
sdc           8:32   1    0B  0 disk 
mmcblk0     179:0    0 59.5G  0 disk 
┣mmcblk0p1 179:1    0  286M  0 part /boot
┣mmcblk0p2 179:2    0  488M  0 part [SWAP]
┗mmcblk0p3 179:3    0 58.7G  0 part /
zram0       254:0    0  3.7G  0 disk [SWAP]
# 
# ddrescue -b64k -d -f /dev/mmcblk0 /dev/sdb
GNU ddrescue 1.30
Press Ctrl-C to interrupt
     ipos:   63864 MB, non-trimmed:        0 B,   current rate:   1062 kB/s
     opos:   63864 MB, non-scraped:        0 B,   average rate:   2513 kB/s
non-tried:        0 B,  bad-sector:        0 B,     error rate:       0 B/s
  rescued:   63864 MB,   bad areas:          0,       run time:  7h  3m 26s
pct rescued:  100.00%, read errors:          0, remaining time:          0s
                               time since last successful read:          0s
Copying non-tried blocks... Pass 1 (forwards)
Finished
#
# sync
# sync
# sync
#

まとめ

実行時間と残り時間が明確になるため良いと思われる。
また、バックアップ後に/etc/fstabファイルを修正する必要も無い。