ディスクのバックアップ方法
背景
- Ubuntuを18.04のサポートがもうすぐ切れる。
- Ubuntuのバージョンを22.04にあげたい。
- バージョンアップする前にバックアップを取りたい。
- 使っているPCはWindows10とUbuntuのデュアルブート環境。
手順
- 重要なファイルは慣れている方法(ファイラーを使ったNASへのコピー)でバックアップをとる。
- 慣れない方法だと期待通りにできないかもしれない。
- UbuntuだけでなくWindowsも。
- パーテションでなくディスクごとバックアップを取る。
- 操作を間違えた場合にWindowsパーテションが壊れるかもしれないので。
- 方法は?
- ディスクバックアップから復元できるか確認する
- 方法は?
- 復元確認すること自体にリスクがありそうだが、実施する?
- Ubuntuのバージョンを上げる
- 方法はdo-release-upgrade?
ディスクバックアップ方法
- 専用ソフトを使う
- AOMEI Backupは使ったことあるが復元できるかチェックしていない
- CloneZillaは業務で使ったことがあり、復元できることを確認している。
- たくさんあるがどれが良い?
- 起動しているパーテションもバックアップ取れるのか?
- Linuxのddコマンド
- 使ったことはない。
- Linuxについているので信頼できそう。
- USBブートすれば、起動ディスクでもバックアップできる。
- 参考URL
強い理由ではないが、以下の理由でCloneZillaを使う。
- 業務で使ったことがあり、多少は慣れている。
- 復元できることを確認したことがある。
強い理由ではないが、以下の理由でLinuxのddコマンドを使う。
- 専用ソフトよりは情報が多そう。
- 失敗したときに情報が多い方が良い。
- 有料のバックアップを買う予定はないのでサポートは期待できない。
- セキュアな情報も多いのでサポートに渡したくない。
- 差分バックアップなど高機能なものは不要。
- 定期的にバックアップする予定はないから
- 勉強になりそう。
バックアップから復元できるかの確認
- もともとのディスクに復元したものを書き込むのはリスクが高いので避ける。
- バックアップ失敗と、復元失敗のリスクがあるので。
- バックアップ用に起動USBとは別に2つディスクを用意する。
- 1つはディスクイメージファイルを書き込む。
- もう1つは上記イメージファイルをバックアップ復元用にブートできる状態で書き込む
- ブート可能状態のディスクをブートできるか確かめる。
使っていない外付けHDDにディスクイメージをブートできる状態で書き込んだ。
その後、BIOSから起動するディスクやパーティションを選択することで、外付けHDDに書き込んだWindows10とUbuntuがとも起動できることを確認した。
Clonezillaでのディスクイメージ取得時に以下のエラーが発生。
Error!
No existing partitions(s) or no unmounted partition(s) are found!
To use Clonezilla to save or clone a partition, the source partition must exist or be unmounted!
If you are sure the partition exists in this machine, maybe kernel is too old?
Clonezillaの起動用USBだけ接続した状態でClonezillaを起動し、途中のメッセージに従って外付けHDDを実行中に接続すると発生した。
Clonezillaの起動用USBとバックアップ先の外付けHDDを付けた状態でClonezillaを起動すると発生しなかったが、これが原因かどうかは自信がない。
clonezillaは「alternative stable - 20230212-kinetic(Ubuntuベース)」と「stable - 3.0.3-22(Debianベース)」を試し、外付けHDDはExFatフォーマットのものとExt4フォーマットのものを試したが、上記エラーは発生した。
最終的には、alternative stable - 20230212-kineticとExFatフォーマットの外付けHDDの組み合わせでディスクイメージを取得した。
clonezillaで上記エラーが発生したあとにrerun(うろ覚え)を選択するとうまく行くことがあった
Ubuntuのバージョンを上げる。
最初にUbuntu18.04から20.04に上げた。
その後20.04から22.04(最新のLTS版)に上げた。
Ubuntu18.04から20.04に上げたときのメモ。
# 現状のバージョン確認(以下のどれか)
cat /etc/os-release
lsb_release -a
# ----------
# 現行バージョンの状態でパッケージを最新にする
# OSバージョンを上げるために必要
sudo apt update
sudo apt upgrade
# sudo apt autoremove
# sudo apt autoclean
# ----------
# OSのバージョンを上げる
# -dオプションをつけるという記事もネットにはあったが、dはつけなかった
# man do-release-upgradeで確認したところdをつけるとLTSよりも最新のバージョンになりそうだったので。
sudo do-release-upgrade
# サードパーティのsource.listが無効になるので、バージョン上げた後に有効にしろとのこと
# 続けるか聞かれたので、ENTERで続行
# 削除されたり追加されたり更新されたりするパッケージの数が表示される
# 数時間かかって、移行はキャンセルできないが続けるかと聞かれたので、yを入力して続行。
# ロックスクリーンが再起動するまで無効になると聞かれたので、ENTERで続行
# 現状の/etc/sysctl.confがデフォルトのものと違うが、現状を維持するか、パッケージメンテナのバージョンに変えるか聞かれた
# 変更内容を確認できる(Dを入力)ので、確認したが、多分メンテナのバージョンで問題なさそうだった。
# そのためYを入力して、メンテナのバージョンに変更することにした
# 廃止されたパッケージを削除するか聞かれたので、yを入力して続行。
# アップグレードが終了し、再起動が必要と言われたので、yを入力して再起動
再起動後はUbuntuは無事起動したので、以下を実施した。
sudo apt update
# 昔設定したサードパーティのsource.listが無効になったためか、更新情報を取得するサイトが少なくなっている。
sudo apt upgrade
sudo apt autoremove
sudo apt autoclean
# 現状のバージョン確認
cat /etc/os-release
lsb_release -a
# 想定通りUbuntu20.04になっていた
Ubuntu18.04から20.04にはバージョンアップできた。
次に20.04から最新のLTS版の22.04に上げたので、そのときのメモ。
# 現状のバージョン確認(以下のどれか)
cat /etc/os-release
lsb_release -a
# ----------
# 現行バージョンの状態でパッケージを最新にする
sudo apt update
sudo apt upgrade
# sudo apt autoremove
# sudo apt autoclean
# ----------
# OSのバージョンを上げる
sudo do-release-upgrade
# 削除されたり追加されたり更新されたりするパッケージの数が表示される
# 数時間かかって、移行はキャンセルできないが続けるかと聞かれたので、yを入力して続行。
# Firefoxのsnap版にアップグレードされるとのこと。
# Firefoxのウィンドウを閉じた後に、ENTER(OK)で続行。
# 廃止されたパッケージを削除するか聞かれたので、yを入力して続行。
# アップグレードが終了し、再起動が必要と言われたので、yを入力して再起動
再起動後はUbuntuは無事起動したので、以下を実施した。
sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt autoclean
# 現状のバージョン確認
cat /etc/os-release
lsb_release -a
# 想定通りUbuntu22.04になっていた
Ubuntu22.04まで上げた時点で、Windowsが起動しないことに気づいた。
WindowsとUbuntuのデュアルブート環境でUbuntuを最新のLTS版にアップデートしたところ、Windowsが起動しなくなった。
なおUbuntuは最新のLTS版で起動できていた。
具体的には以下のどこかのタイミングで起動しなくなったと思う。
- clonzillaでディスクをイメージファイルにして外付けHDD1にバックアップとして書き込む
- clonzillaでイメージファイルを外付けHDD2にブート可能な状態で書き込む
- 外付けHDD2からWindowsやUbuntuが起動できることを確認
- Ubuntu18.04を20.04にアップデート
- Ubuntu20.04を22.04にアップデート
Windowsが起動できなくなったとは具体的には下記の症状が出たことを指す。
- Windowsを起動しようとしたところ、黒画面に「自動修復を準備しています」と表示される
- 10秒程度で、青画面に「キーボードレイアウトの選択」という画面が表示がされる
- 「Microsoft IME」や「US」などが選択できる
- 「Microsoft IME」を選択すると、「オプションの選択」という画面が表示される
- 「トラブルシューティング」か「PCの電源を切る」が選択できる
- 「PCの電源を切る」を選択すると電源が切れるが、起動すると同じことが起こる
- 「トラブルシューティング」を選択すると、「詳細オプション」という画面が表示される
- 「スタートアップ修復」や「UEFIファームウェアの設定」含めて6種類くらい選べたが、試した範囲では何も直らなかった
起動できるUbuntuを立ち上げて、ディスクアプリケーションから状態を確認すると、「WindowsのNTFSパーティンション」と「WindowsとUbuntuのファイル共有用に作成したFAT32のパーティンション」に鍵マークがついておりBitLocker2でロック中となっていた。
WindowsHomeを使っており、HomeエディションだとBitLockerでの暗号化はできないはずなのに、上記表示となっていた。
自分でも暗号化した記憶はない。
なお、復号化はできるらしい。
BitLockerの回復キーをMicrosoftのアカウントページから探してみたが、そんなものは見つからなかった。
ブート可能な状態で書き込んだ外付けHDDからだと、Windowsを起動することができた。
「コンピュータの管理」→「記憶域」→「ディスクの管理」からBitLockerで暗号化されたパーティンションを復号化することができた。
復号化には時間がかかったが、それを実施すると無事起動できるようになった。
正直どうして起動できなくなったか分からないが、問題が解消して助かった。
関連は不明だが、外付けHDDからWindowsを起動してディスクの管理を確認した際に、外付けHDDは「オフライン(オンラインである他のディスクと署名が競合しているために、ディスクはオフラインです)」と表示されていた。
これも謎。
トラブルはあったがWindowsも問題なく起動し、最新のLTS版にしたUbuntuも動くようになった。
バックアップを取ってちょうどよかったので、Windowsも10から11にアップデートした。
WindowsUpdateからポチポチクリックしたところ、特に問題も発生せずにWindows11にアップデートできた。
最終的にはWindows10とUbuntu18.04LTSというデュアルブート構成から、Windows11とUbuntu22.04LTSというデュアルブート構成に無事アップデートできた。