ubuntu Live CDでWindowsのバックアップを取得する
UbuntuのLiveUSBを作成してバックアップを作る
UbuntuのLiveUSBを使って、HDDをクローン作成出来ます。
自分のPCにUSBフラッシュドライブを差し込んでUbuntuで起動します。Ubuntuが起動したら「ターミナル」を起動します。
ddrescue をインストールします。
ターミナルに次の命令(コマンド)を打ち込みます。
sudo add-apt-repository universe sudo apt install gddrescue
ddrescue でバックアップを取ります。
インストールした ddrescueを使って「バックアップ」を作ります。
ddrescue /dev/sdd /dev/sde
/dev/sddって何?
/dev/sda
/dev/sdb
/dev/sdc
はHDD・SSD・USBメモリなどストレージを接続したら、そのストレージ(ブロックデバイス)を識別し利用するために、自動的につけられる名前です。/dev/sda /dev/sdb /dev/sdc と接続した順に使われます。
/dev/sdd
の名前は、起動したパソコンへのUSB接続状態で変わります。
どのディスクがどの名前になってるかを調べるには、ターミナルに次のコマンドを打ち込めばわかります。
lsblk
USBドライブを抜き差しししながら、lsblk
の結果を眺めて名前を特定しましょう。
WindowsのDドライブと何が違うの?
Dドライブの名前は、WindowsでSDカード接続したときに自動的につけられる名前で、これもC/D/E/Fと順番に使われます。/dev/sda と似ていますね
でも、/dev/sde
と E:\
は全く違います。
windowsでは「ファイルが読み書きができる状態」のストレージにアルファベットを割り当てています。ファイルの読み書きができない状態のドライブを、Windowsでは Disk0/Disk1 のように連番を割り当てています。(通常は見えません。)この連番が linuxでは /dev/sda,sdb
のようなアルファベットになっています。
読み書きできないって?
「ファイルが読み書きできない」状態とは、空っぽのストレージです。
空っぽとは未フォーマットことです。「未フォーマット状態」も馴染みがなくて、わかりにくいとおもいます。データ消去ソフトで0を書き込み抹消した状態です。
未フォーマット状態でも書き込める。
ストレージは、未フォーマット状態でも、書き込みが可能です。未フォーマットのドライブをフォーマットすれば、書き込めるようになります。フォーマットするとは、ディスクに「パーティション情報を書き込んでいるのです」
未フォーマットのドライブに書き込みができないとフォーマットができないですよね。だから、未フォーマット状態のドライブでも読み書きは出来ているわけです。この直接アクセス機能でHDDクローンを作るのがバックアップ・イメージ作成の基本的な戦略です。
ストレージを直接扱う /dev/sda
未フォーマット状態の生ストレージをLinuxではブロックデバイスと呼びます。このブロックデバイスを扱うのが /dev/sda
のデバイス名になります。
Windowsでは、生のディスクを「Disk」、フォーマット済でファイルが書き込める状態のディスクを「Volume」と呼んで区別していますね。
UbuntuはLinuxなのでHDD/SSDをダイレクトに扱うときは /dev/sdX
のような名前でアクセスします。
生のデバイスを使ってクローン
ddrescue では、ファイルを読み出すのではなく、生のデバイスとして、0/1の信号まま直接読み出すことが出来ます。0/1の信号を直接読み出してハードディスクからハードディスクへコピーしてクローンを作ることが出来ます。
CD/DVDも生のデバイスとして扱えます。このクローンの機能で、CD/DVDをそのまま複製するときも使われます。
ddrescue のコマンドの詳細
冒頭の ddrescue コマンドは、/dev/sdd のディスクから /dev/sde のディスクにデータを丸コピーしているのです。
ddrescue /dev/sdd /dev/sde
ddrescue のコマンド書式は次のようになっています。
ddrescue SOURCE DESTINATION
source は転送元、destination は転送先を表します。省略してsrc/dstと書くこともあります。
ddrescue src dst
ではは、HDDに限らずコピーできるものなら何でもコピーします。ddrescueはデータを左から右へ流すだけのソフトウェアです。もちろんファイルコピーも出来ます。
バックアップをファイル保存
ddrescueが使えるからと行ってディスク → ディスク ( disk to disk ) で保存していると、HDDが何台在って足りません。そこで大容量ディスクに「ファイル」として保存しておけば、HDDの台数を節約できますし、USB再接続の手間が省けます。
ddrescue /dev/sdd my-backup.img
コピー先はコピー元より大容量が必要です。ファイルを保存するときも同様です。ファイルがあるフォルダがHDDより大容量でなくてはいけません。
容量が足りない
しかし実際にはコピーしようとすると、コピー先容量が足りないことがあります。どうしたらいいでしょうか。データを圧縮すれば解決です。データ圧縮で容量を節約できます。
このときddrescue
の代わりにdd
を使います。 dd は ddrescue の祖先です。
コマンドは次になります。
dd if=/dev/sdd | gzip - > my-backup.img.gz
ddrescueの代わりに上記コマンドを使います。 dd は ddrescue の祖先です。dd もデータを流すだけのソフトウェアです。
dd if=/dev/sdd
は。データを抜き出して別プログラムに転送します。|
は、左から右へデータを流します。左と右にプログラムを指定します。gzip - > my-backup.img.gz
は、受け取ったデータを圧縮して、右のファイルへ書き出します。
これらを合わせたら上記のコマンドは「転送と転送」と「圧縮と転送」を組み合わせていたとわかります。dd
で抜き出したデータを |
で転送して、gzip
で圧縮し、> my-backup.img.gz
に書き出す命令ということです。
データを書き戻す。
バックアップデータは元HDDに書出したいと考えるでしょう。
先程の ddrescue の転送先と転送元の順番を逆にすればいいのです。
ddrescue /dev/sde /dev/sdd
圧縮ファイルの場合は逆(展開)が入ります。
gzip -d my-backup.img.gz -c | dd of=/dev/sdd
圧縮されたデータでも転送の順番を逆にすればいいのですが、圧縮と展開という逆の処理が必要になります。
gzip -d ファイル名
で指定したファイルを展開します。gzip -c
で展開したデータを別プログラムに流します。|
でプログラムからプログラムにデータを転送します。dd of=/dev/sdd
でプログラムから転送されたデータをHDDへ転送します。
コピーのときはdd if=/dev/sdd
ではHDDからデータを読取って次へ転送していました。今度は逆なので受け取ったデータをHDDへ転送する必要があります。それがif=
/of=
の違いです。dd of=/dev/sdd
は受け取ったデータをHDDへ転送しています。if=input FILE
の略です。of= output FILE
の省略です。
フリーソフトウェア
ddrescue コマンドを使えば、HDDからHDDへのコピーができる。
そのためのddrescueコマンドは ubuntu で使える。そしてubuntu は無料で使える。だからddrescueも無料で使える。よってHDDのコピーしてクローンを作成しても無料である。無料ソフトウェアで自由に使える。Linuxは無料でソースコードも公開されていて、誰もが自由に使えます。誰もが知的欲求のままに自由にソースコードを閲覧し自由にコンピュータを扱えるようにするためGPLという約束があります。「ソフトウェア公共財は未来永劫に公共財である」と言う約束です。
最後に
ubuntu の usbメモリを作っておけば、SSDからデータを吸い出してコピーすることが出来ます。SSDが寿命を迎える前に、一度バックアップをとっておきましょう。
コンピュータのバックアップを取るために、少しの知識と少しの手間、そして少しの時間がアレば、自由なソフトウェアをつかって、自由にコンピュータのデータをコピーできるのです。バックアップを取るのも自由なら消すのも自由。そしてそれは誰でもが扱えるソフトウェアによって成立しています。
クローン専用ソフトウェアは ddrescue
という自由に使えるソフトウェアです。ddrecueを動かすUbuntuも自由ソフトウェア(OS)です。自由に使えるので、無料でデータのバックアップの専用ソフトウェア使えます。データのバックアップくらいは自分でできるよう練習してみてはいかがでしょうか。
まぁ売るのも自由なのですが。無料のソフトを買う人はいないよね。