USBストレージに Ubuntu環境を作ってWindowsとデュアルブートする
なぜUSBストレージにインストールするのか
ハードウェア(主にGPU)のネイティブ性能を使い切りたい
ストレージを独立させてブートローダーを内蔵SSDに入れたくない
解説動画
やりたいこと
- 1台のPCでWindows/Linux環境を切り替えて使いたい
- 内臓SSDにWindows、USBストレージにLinuxを入れる
- Linuxを使わないときにはUSBストレージを抜いておきたい
準備するもの
- USBメモリ(16GB~)
- USBストレージ(SSDがおすすめ/256GBで数千円くらい)
- インターネット接続
(普通の)インストール手順
- インストール用USBメモリを作成する
- USBメモリからインストーラを起動
- USBストレージにインストール
- 起動チェック
(うまくいけば)これでOK!
今回はこの後に待ち受ける、うまくいかなかったときの話をします
インストール用Live USBをつくる
Ubuntu ISOファイルをダウンロード
- 基本的に「LTS」を選ぶ
- 同じ年に出たばかりのものは避ける(2022.12.25時点だと22.04は避け20.04を使う)
- 動作させたいプロダクトで検証済みのバージョンを選ぶ(一番大事)
Banana etcherをダウンロード
- ISOファイルをインストール用USBメモリに書き込む
- まちがってUSBストレージの方にインストールしないように気をつける
USBメモリからインストーラを起動
- PCの起動順をUSBメモリから起動するように変更
- BIOS設定画面でSecure Bootをオフにする
→それぞれのPCの説明書を参照
「日本語」を選択して「Ubuntuをインストール」
キーボード選択
WiFi設定
「最小インストール」を選択し、2つチェックを入れる
「それ以外」を選択する
次のウィンドウ下部のブートローダをインストールするデバイス
のプルダウンを開くと、ストレージの型番やメーカー、容量が出てくるので、インストールするストレージを確認する。
今回インストールするのは/dev/sda
。
/dev/sda
の中にある/dev/sda1
などを【-】をクリックして削除
先頭にEFIパーティションを確保
残りはext4でフォーマットして/
にマウント
最終的にこうなるとよい。
/dev/sda1
がEFI
/dev/sda2
がその他
'/dev/sda'にブートローダがインストールされる……ように表示している
これは再起動後のブートデバイス選択画面だが、以下の様に表示されて、別デバイス(USB1とHDD1)にインストールされていればここで終了。
ブートローダの再設定
まずはブートデバイス選択画面で、'ubuntu'を選択する
Ubuntu起動後、ログインして左下の●が9個並んだアイコンをクリック
上部の検索窓に'terminal'と入力して端末アプリを開く
そして、以下のコマンドを1行ずつ入力し、それぞれ末尾でEnter
キーを押します。
sudo -s
mkdir /chroot
mount /dev/sda2 /chroot
mount --bind /dev /chroot/dev
mount --bind /dev/pts /chroot/dev/pts
mount --bind /proc /chroot/proc
mount --bind /sys /chroot/sys
mount --bind /run /chroot/run
chroot /chroot
mount /dev/sda1 /boot/efi
grub-install --efi-directory=/boot/efi
update-grub
fstabの編集
blkid /dev/sda1
ここでUUID="0xxxxxxxxxxxxx"
のダブルクオーテーションの中だけを選択してコピー
nano /etc/fstab
で、/dev/sda1
の横にあるUUID=
の後ろにペースト
ctrl押しながらx
→Y
で保存して終了
sudo reboot
再起動して、次はWindowsで設定します
Windowsで起動エントリの削除
Windows起動後、キーボードのWindowsキーを押してスタートメニューを開く
↓
cmd
と入力し、管理者として実行
をクリック
確認ウィンドウが出るのでOKをクリック
以下を入力してEnter
bcdedit /enum firmware
リストの中からubuntu
の項目を探し、identifier
の右にある{~}の部分を括弧まで全部コピー、メモ帳などにいったんメモる
次のコマンドの{~}のところに貼り付けてEnter
bcdedit /delete {~}
これでubuntuの起動エントリが消えました。
EFIパーティションの中のUbuntuディレクトリを削除
引き続きコマンドプロンプトで、
diskpart
と打つと、diskpart >
と表示されるので、続けて
list disk
出てきた中から「Windowsがインストールされているディスク」の番号を見る
次のコマンドの最後の番号
の部分に上記の番号を入れる
sel disk 番号
次に、ボリュームを選びます
list vol
Fs(ファイルシステム)が「FAT32」、Infoが「システム」になっているパーティションの番号を見る。
次のコマンドの番号
のところにその番号を入れる
sel vol 番号
assign letter = Z
exit
ここで、DiskPartを終了しています...
と表示されて普通のコマンドプロンプトに戻ります
EFIパーティションにZドライブを割り当てたので、
Z:
cd EFI
dir
Z:\EFI
の内部が表示される。ubuntu
があることを確認し、
rmdir /s ubuntu
で削除。ubuntu、よろしいですか(Y/N)?
と聞かれるのでYを入力
これでGrubブートローダーを削除できました。
次に、スタートメニューから再起動を選んでリセットしてみると、
このようになり、別デバイス(USB1とHDD1)にUbuntuとWindowsがインストールされていればOK。おつかれさまでした!
Windowsの時間が9時間ずれる
以下のコマンドをUbuntuのターミナルで実行してください。
sudo timedatectl set-local-rtc true
参考にした記事
Discussion