この記事は、UEC 2 Advent Calendar の23日目の記事です。
https://adventar.org/calendars/10198
22日目の記事は、hEnkaさんの ロボットアームの記事でした。
ロボットアームといえば、私は工場でアームが電子部品を持ち上げて、ベルトコンベアーの上を流れている基盤にセットするイメージが思い浮かべます。あるいは、東北大の研究室が作成した、ドラえもんの手のような丸いものでしょうか。
https://www.robotaward.jp/archive/2018/8th%20Robot-GBsingle03.pdf
ロボットに限らず、実体のあるものを作るのっていいですよね。ソフトウェア開発と違って、自分が作ったものを見て触れることができるので、完成した時の達成感がすげぇっす。
はじめに
今年の1月に、筆者はデュアルブートをしました。
ですが、その後Ubuntuを使う用事ができたので、今回はWin11 + Kaliの構成からKaliを削除します。(その後、Kaliが元々入っていた領域にUbuntuをインストールしてWin11 + Ubuntuのデュアルブートを構成しますが、それはまた別の記事で扱うかも?)
あくまで参考ですが、今回環境の再構成を行なったPCは以下の通りです。
- DELL XPS 8960
- CPU: Intel Core i7-13700
- GPU: NVIDIA RTX 4060 Ti (8GB)
- メモリ: DDR5-4800 16GB x 2
- ストレージ1: SSD 1TB (Windows 11インストール済み)
- ストレージ2: HDD 2TB (Kali Linuxインストール済み、ここにUbuntuを入れる)
以下に述べるコマンド等を実行すると、予期せずPCが起動しなくなったり、データが削除されたりする可能性があります。(実際に起動しなくなりました...)そのような場合でも、筆者は責任を負いかねます。
あくまでも自己責任で!
準備
まず、バックアップをとりましょう。システムファイルのバックアップも重要ですが、これらをバックアップしようとしてメディアのフォーマットをしたり、diskpartを使い始めたりすると、誤ってバックアップしていないものを削除してしまう可能性があります。
その前に、OneDrive、iCloud、Google Drive、別の外付けハードディスクなどにバックアップをしておきましょう。
ドキュメントや写真、動画など重要データのバックアップを忘れずに!
WindowsとLinuxのデュアルブート構成をしているとき、Linuxを消すとGRUBが使えなくなってWindowsが起動しなくなるかもしれません。
そのため、まず残しておきたいWindowsの起動メディアを作成します。
※ UEFI(BIOS)やMBR, GRUBに詳しい方なら、「Windows用の起動メディアを作成するだけじゃ不十分じゃね?」って思われるかもしれません。筆者もそう思います。
私は宗教上の理由によりサードパーティのツールをあまり使わないのですが、変なこだわりを捨ててaomeiやeaseusのソフトを入れたほうが良かったりするのかな?
デュアルブートしている場合に、ブートローダー周りも含めて適切なバックアップをする方法をご存知の方、不勉強な筆者にご教示いただけると幸いです。
USBメモリの準備
まず、USBメモリをPCに挿します。
このとき、USBメモリに不具合があると、Windowsの画面の右下に「お使いのUSBメモリを認識できませんでした」「D:USBドライブを修復する必要があります」という趣旨の通知が出るかもしれません。そのようなメッセージが出たら、画面に表示されるメッセージに従って修復してください。
その後、コマンドプロンプト(あるいはWindos PowerShell)でdiskpart
と入力し、diskpart.exeを起動します。
diskpart.exeを起動したら、差し込んだUSBメモリをNTFS形式でフォーマットします。
select disk 2
(ご自身の環境に応じて、数字の2は適当な番号に置き換えてください)
list volume
select volume 6
このような形で、パソコンに挿しているUSBメモリが表示されると思います。(筆者の場合はVolume 6ですね)
ここで、format fs=ntfs
もしくは、format fs=ntfs quick
を入力しても良いのですが、筆者はエクスプローラを開いてDドライブを右クリックし、GUIの操作でフォーマットをしました。
回復ドライブの作成
フォーマットが完了したら、回復ドライブを作成します。
Windowsのタスクバー(あるいはスタートメニュー)に検索窓があるので、「回復ドライブ」と入力し、表示されたアプリ(回復メディア作成ツール)を開きます。
「システム ファイルを回復ドライブにバックアップします。」にチェックが入っていることを確認して、「次へ」を選択します。
回復メディアの作成が完了したら、USBメモリを取り出します。
「次へ」がクリックできない場合
「USB フラッシュ ドライブの接続」の画面から、次に進めなくなる場合があります。 (USB 2.0でないUSBメモリを使っていたり、フォーマットがFAT32でない、USBメモリ上に未割り当て領域がある、回復環境もしくはシステムファイルが壊れているなど、様々な原因が考えられますが、筆者の環境では原因が特定できませんでした。)このような場合は、いざという時のために、Windowsを再インストールする準備をします。
Microsoft公式の Download Windows 11 ページから、Create Windows 11 Installation Mediaの欄にある「Download Now」をクリックします。
なお、デュアルブートの再構成に失敗してWindowsの再インストールが必要になった場合、プロダクトキーが必要になる場合があります。
ここでは詳しく言及しませんが、筆者のDELLのPCの場合は、マザーボードにプロダクトキーが予め設定されているため、ユーザがプロダクトキーを入力する必要はないそうです。
さて、Media Creation Toolをダウンロードして起動したら、画面の案内に沿ってボタンをポチポチして進めると、(各種パラメータ、設定が初期状態になっているクリーンな)Windowsのダウンロードが始まります。
Windows再インストール用のメディア(USBメモリ)が作成できたら、そのメディアは無くさない場所に保管しておきましょう。
Distroの削除(アンインストール)
詳しい解説は他のサイトに譲りますが、「ディスクの管理」(ハード ディスク パーティションの作成とフォーマット)で、単純に以前インストールしていたKali Linuxのパーティションを単純に消すだけでは、ブートローダー(GRUB)も削除されてしまいます。そのため、WindowsのデータがSSD上に残っていても、それを読み込めず起動できない、という現象が発生します。
※ ブートローダーの理解については、筆者も自信がありません。説明下手くそですみません...
- デュアルブート通常時: UEFI→GRUB→Kali LinuxもしくはWindowsのブートローダー→ログイン画面
- Kali削除後: UEFI→GRUB(存在しない)→エラー
- 修正後: UEFI→Windowsのブートローダー→ログイン画面
今回は、SSDにインストールしてあるWindowsを残したまま、HDDにインストールしたKali Linuxを削除します。
基本情報の再確認
Windows PowerShell (またはコマンドプロンプト)を管理者として開きます。
msinfo32
と入力して、「システム情報」という項目が出てきたら、BIOSモードが「UEFI」であることを確認します。
確認が終わったら、bcdedit /enum firmware
コマンドを実行します。今回消したいのはKali Linuxなので、descriptionの欄にkaliと書かれているものを探します。
画像にある通り、Kaliに関わっていそうな3つエントリが見つかりました。きっとこれらを削除すればいいんだろうなと予想しながら、今度は「ディスクの管理」(ハード ディスク パーティションの作成とフォーマット)を立ち上げます。タスクバーもしくはスタートメニューの検索窓から探してください。
写真のような画面が表示されたら、Kali Linuxが入っているであろうボリュームを右クリックで選択して、削除します。本来は削除前にKali Linuxへログインして、Kali Linuxのターミナルからディスクの情報を確認するべきですが、今回は筆者がパスワードを忘れてしまったため、その手は使えません。Kali LinuxのログインIDとパスワードを忘れた時のためにメモしていたけど、パーティションを消してからメモの存在を思い出したから役に立たず
代わりに、Kali LinuxとWindowsのデュアルブートをする前のパーティション情報をスクショで残しておいたので、これを見ながら、削除すべきパーティションを推定します。
HDDの容量から判断して、筆者の環境では1861.56GBとなっているのがKaliの本体、977MBとなっているのがKaliのSwapと思われます。これら2つをまず削除します。
削除したら、bcdedit /enum firmware
コマンドで、エントリがどうなっているかを確認します。なんかまだkaliが残ってるなぁ
先ほどはパーティション(ボリューム)を削除しただけなので、ブートローダのエントリはまだ残っています。今からこれらを消します。
bcdedit /delete {identifier}
コマンド(ただし、第2引数には中括弧を含めたidentifierの値を入れる)で、kaliを消します。
コマンドを実行する前に、自分が意図したidentifierを正しく選択しているか、再度確認してください!
PCが起動しなくなった
bcdedit /delete
コマンドを入力するときに、正しいidentifierを入れても、なぜか「値が有効ではありません」というようなエラーが出て、先に進みません。
identifierはコピペしているので打ち間違いというのは考えにくい、と思いつつ2日間放置したら、PCの電源が落ちてしまい、Windowsが起動しなくなりました。さようなら。
原因ですが、GRUBがパーティションを読み込めなくなっていることが原因のようです。写真のようにgrub rescueと表示されます。
パーティションが残ってるWindowsへのアクセスを確保
一度、PCの電源ボタンを押して電源を切ります。PCのモデルや製造元にもよりますが、私の場合は電源を入れた直後にESCキーを押して、その後F12キーを押すとUEFI(BIOS)の画面が出てきました。
ここで、Windows Boot Managerを選択すると、無事にWindowsが立ち上がります。
デュアルブートの再構成...は次回の記事で!
記事を書いているうちにサイズが大きくなってきたので、分割することにしました。余裕があったら続編として、ブートローダ周りを直してWin + Ubuntu のデュアルブートを構成します。
この記事はUEC 2 Advent Calendar の23日目の記事です。(遅刻してすみませんでした)
24日目はあるさんの記事です。私の記事投稿時点ではまだあるさん更新されていないようなので、気長に待ちますね。
ここまでお読みいただきありがとうございました!
参考文献