« 最近のWindows 10 ISOをmacOS上でUSBメモリに書き込む | トップページ

2020年8月23日 (日)

Mac+外付けHDDにUbuntu 20.04をインストール (HFS+ ESP編)[追記]

Intel Mac 上で外付け HDD に Ubuntu 20.04 をインストールして、外付けHDD 内のブートローダーから起動できるようにするための覚え書き。

注意:Intel Mac とは、2006年?以後2020年現在まで発売されている Macintosh コンピューターのこと。かつて販売されていた PPC Mac や 2021年以降に発売が噂される ARM Mac(Apple Silicon 搭載 Mac)は本項では扱わない。

通常のやり方で外付け HDD に Ubuntu をインストールすると、ブートローダー GRUB が内蔵 SSD の EFI パーティションにインストールされてしまう。そうなると、Mac に Boot Camp を用いて Windows をインストールしてある場合、Windows が起動できなくなる恐れがある。

幸いなことに Intel Mac には、内臓であれ外付けであれ、一定の条件を満たしてさえいればどの HFS+ パーティションからでも OS を起動させることができるという特性がある。その特性を利用すれば、内蔵ドライブに全く影響を与えることなく外付け HDD のみで Linux を起動することが可能である。その外付け HDD を別の Intel Mac に接続して Linux を起動するという芸当もできる。

同じ Linux でも Fedora のほうはかなり早い段階から標準でそのようなインストールできるようになっており、当ブログでもその方法を説明している。

一方、Ubuntu はそのようにはなっていないため、工夫が必要である。

そのやり方については、こちらのサイト などでも説明されているが、コマンドラインを多用している。当ブログでは、できるだけ簡単に、GUI アプリを活用しつつ、設定を行いたいと思っている。

前提

  1. macOS が内蔵ドライブにインストールされている Mac
  2. Ubuntu 専用にする外付け HDD(注意:インストール作業によって中のファイルは全て消えてしまうので、残しておきたいファイルがあるなら他の場所にコピーしておくこと)
  3. rEFInd がインストールされている USB メモリ(もしくは SD カード)
  4. Ubuntu インストール iso を書き込んだ USB メモリ

3. と 4. の作成方法については他のサイトの説明を参照されたし。

USB メモリを二つも持っていないという場合は、外付け HDD に小さな HFS+ パーティションを作って、そこに rEFInd をインストールすることで代用できる。あるいは、SD カードスロットがある Mac なら、SD カードを HFS+ にフォーマットして rEFInd をインストールすることもできる。

1. の macOS は、本項ではパーティションを HFS+ でフォーマットする際に使用する。macOS を消してしまっているという場合、パーティションの作成及び HFS+ へのフォーマットは Ubuntu 上で行わなければならないが、ここではそれについては述べない。

なお、以下の作業中、ネットワーク接続が必須である。だが、一部の Mac は Ubuntu 上ではドライバーをインストールしないと無線 LAN(Wifi)接続ができない。お使いの Mac が Ubuntu で Wifi ドライバーを必要とする機種かどうかを調べておき、必要なら有線 LAN を使うか、もしくは無線 LAN ドライバーインストールの方法を調べておくこと。

また、最近の Mac は 他の OS で起動できないようプロテクトをかけているものがある。その場合は解除手続きを踏んでおく必要がある(詳細は他のサイトを参照のこと)。

外付け HDD の準備

概要:外付け HDD 内に小さな HFS+ パーティションと、Ubuntu インストール用の空きスペースを作り、HFS+ パーティション内に「擬似 macOS 環境」を作る。

(以下の macOS の画像は macOS 11 Big Sur のもの。macOS 10.15 以前なら少し違うデザインである)

macOS を起動し、外付け HDD を繋ぐ。デスクトップに外付け HDD のアイコンが表示されたら、それをゴミ箱にドラッグしてアンマウントする(但し、Finder の環境設定を、デスクトップに外部ディスクのアイコンを表示しない設定に変更していれば表示されない。その場合は Finder ウィンドウから操作する)。外付け HDD のケーブルはコンピューターに繋いだまま。

Launchpad から「ターミナル」を起動する。

「ターミナル」ウィンドウ上で「diskutil list」と打ち込む。表示される一覧表の中から、外付け HDD を見つけ出す。HDD の容量から判断できるだろう。そこで、外付け HDD の「IDENTIFIER」の文字列を確認する。ここでは disk2 であるものとする。

「diskutil partitionDisk disk2 MBR HFS+ uBoot 200MiB Free\ Space ubuntu 0」と打ち込む。disk2 が先ほど確認した IDENTIFIER に間違いないことを確認する。※注意:IDENTIFIER を絶対に間違えてはならない!。もし間違えると、他のドライブのデータが消えてしまう。

確認したら、リターン(エンター)キーを押す。

進行状況を示す文字列が表示される。フォーマットが終わったら、デスクトップに uBoot という名前のアイコンが現れる。

次に「ターミナル」上で「echo 'This file is required for booting' > /Volumes/uBoot/mach_kernel」と打ち込んでリターン。

デスクトップ上で uBoot アイコンをダブルクリックして開き、中に mach_kernel というファイルが出来ていることを確認する。

uBoot 内に「System」という名のフォルダを作る。さらにその中に「Library」フォルダ、さらにその中に「CoreServices」フォルダを作る。先ほどの mach_kernel ファイルをコピーして、CoreServices 内にペーストして、「boot.efi」という名前に変える。つまり uBoot 内に「System/Library/CoreServices/boot.efi」というファイルを作成するということである。

さらに、同じく uBoot 内に「EFI」という名のフォルダを作り、その中に「ubuntu」フォルダを作る。そして先ほどの mach_kernel ファイルをコピーして、ubuntu フォルダ内にペーストする(こちらは名前を変える必要はない)。つまり uBoot 内に「EFI/ubuntu/mach_kernel」というファイルを作成するということである。

ここで一旦、コンピュータを終了する。

Ubuntu のインストール

概要:ここでは Ubuntu を外付け HDD に「ブートローダーなし」でインストールする。そのためには、インストールプログラムである「Ubiquity」を、コマンドラインからブートローダーなしモードで起動する必要がある。

外付け HDD を外し、Ubuntu インストール iso を書き込んだ USB メモリを USB ポートに挿す。

option キー(Alt キー)を押した状態のままコンピューターを起動する。option キーは押したままにしておく。

しばらくすると OS 選択画面が表示される。そこで option キーを離す。

OS 選択画面 には Macintosh HD アイコンに加え、「EFI Boot」という名前のオレンジ色のアイコンが表示されているはず(Windows をインストールしていれば Windows アイコンも表示されるだろう)。矢印キーで EFI Boot アイコンを選択(二つ現れている場合、どちらでも良い)してリターンキーを押す。

USB メモリ内の Ubuntu が起動を始める。USB メモリの性能によってはやや時間がかかる。

起動の途中で「Try Ubuntu」と「Install Ubuntu」という選択肢が表示されるので、左の選択肢から「日本語」を選択した後に「Ubuntu を試す」ボタンを選ぶ。

デスクトップが表示されたら、別の USB ポートに外付け HDD を接続する。

左下の「Show Applications」アイコンをクリックして「Terminal」を起動する。

「Terminal」に「sudo ubiquity -b」と打ち込んでリターンキーを押す。すると Ubuntu インストールプログラムが起動し、インストール手続きが開始される。

ウィンドウに表示される指示に従ってインストールを進める。難しくはないので説明は省略する。

インストール手続きを進める過程で、「インストールの種類」として「それ以外」を選ぶ。

そこで表示される「インストールの種類」ウィンドウにおいて、外付け HDD を探す。/dev/sdb や /dev/sdc などの名前になっている(容量などからも判断できるだろう)。ここでは /dev/sdd とする。

外付け HDD(sdd)の「空き領域」を選択し、下の方にある「+」ボタンを押す。(なお、ウィンドウが画面外にはみ出してしまってボタンが表示されない場合は、option + fn + F7 キー押す。するとマウスポインターが手の形になる。クリックしないようマウスやトラックパッドで上に動かせば、ウィンドウが上に動き、下部を表示することができる。クリックで固定する)

表示される「パーティションを作成」ダイアログボックスで下の画像のように設定して「OK」ボタンを押す。

(本来なら 変更... ボタンの下に「ブートローダーをインストールするデバイス」を指定するプルダウンメニューが表示されるのだが、今回は「ubiquity -b」で起動したため表示されない)

「インストール(I)」ボタンを押してインストールを進める。説明は省略する。なお、インストール中に有線 LAN、もしくは無線 LAN(Wifi)接続が完了しているものとする。

インストールが終わったら、コンピューターを再起動するかどうかの選択ダイアログが表示されるので「今すぐ再起動する」を選択する。

コンピューター終了プロセスが進行し、最後に「Please remove installation medium, then press Enter:(インストールメディアを除去してリターンキーを押してください)」というメッセージが出るので、Ubuntu インストール iso を書き込んだ USB メモリをまず抜き取る。

インストールした Ubuntu で起動

次に option キーを押した状態のままリターンキーを押す。option キーは押したままにしておく。

しばらくすると OS 選択画面が表示される。そこで option キーを離す。

USB ポートに rEFInd の USB メモリを挿す。rEFInd のアイコンが現れるので、矢印キーでそれを選択してリターンキーを押す。

すると rEFInd 独自の OS 選択画面が表示される。そこで矢印キーで Linux カーネルを選択する。Ubuntu の場合(現時点では)丸いオレンジ色のアイコンのはずである。そしてリターンキーを押す。

インストールしたばかりの Ubuntu が起動を始める。但し、やや起動速度が遅い。画面が真っ黒のまま、1分ほど何も表示されない可能性がある。気長に待たれたし(外付け HDD の LED ランプが点滅している限り、起動プロセスは順調に進んでいることがわかる)。

fstab の書き換え

(この時点で有線 LANに接続しておらず、インストール作業中に無線 LAN(Wifi)接続もできなかった場合、日本語環境が整わないので、デスクトップが一部日本語化されない。以下の画像はすべて日本語化されている画像である)

デスクトップが表示されたら rEFInd の USB メモリは不要なので、取り外し手続きを行って取り外す。

インストールした Ubuntu の初回起動時、デスクトップ上に各種の設定を行うためのウィンドウが表示される。そこで指示に従って各種設定を行う。

「ディスク」アプリケーションを起動する。

ウィンドウ左側の部分で内蔵ドライブが選択されているはず(されていなければ選択する)。「ボリューム(V)」と書かれた帯グラフ上で一番左のパーティションが選択されているはず(されていなければ選択する)。■ ボタンを押してアンマウントする。パスワードを打ち込むよう要求されたら打ち込んで「認証」ボタンを押す。

すると、一番下の行「内容」が「未マウント」に変わる。※注意:「未マウント」であることをよく確認されたし。

ウィンドウ左側の部分で外付け HDD を選択する。「ボリューム(V)」と書かれた帯グラフ上で一番左のパーティションが選択されているはず(されていなければ選択する)。■ ボタンを押してアンマウントする。上記と同様、「未マウント」になる。

引き続き「UUID」の文字列を記録しておく(文字列を選択して右クリック/二本指クリックでコピーすることもできる)。この文字列は8文字程度の場合もあれば、30文字以上の場合もある。

「端末」を起動する(「ディスク」アプリケーションはそのまま)。

「sudo rm -r /boot/efi」と打ってリターンキー押す。パスワードを尋ねられたら、インストール時に設定したスワードを打ち込んで、リターン。

「sudo gedit /etc/fstab」と打ち込んで、リターン。テキストエディタが起動する。

「/boot/efi」という文字列を含んだ行を探す。見つかったら、行頭の「UUID=」に続く文字列を、先ほど記録した文字列に書き換える(コピーしたなら Ctrl + V で貼り付けることもできる)。

次に、同じ行の「vfat」を「auto」と書き換える。さらに同じ行の残りの部分も下の画像のように「defaults 0 0」と書き換える。

ウィンドウ上部の「保存(S)」ボタンを押して保存し、テキストエディタのウィンドウを閉じる。「端末」は閉じずにそのまま。

「ディスク」アプリケーション上で、ウィンドウ左側の部分で外付け HDD を選択する。「ボリューム(V)」と書かれた帯グラフ上で一番左のパーティションが選択されているはず(されていなければ選択する)。▶︎ ボタンを押してマウントする。一番下の行「内容」が「/boot/efi にマウント」に変わったことを確認する。もし変わらなかったら、先ほどテキストエディタ上で行なった fstab の書き換えが正しくなかったことになる。

「ディスク」アプリケーションを終了する(ウィンドウを閉じる)。「端末」は閉じずにそのまま。

GRUB をインストール

(この時点で有線 LANに接続しておらず、インストール作業中に無線 LAN(Wifi)接続もできなかった場合、この先の作業に進むことができない。他のサイトを参考にしてネット接続を確保してほしい)

「端末」に「sudo apt install grub-efi」と打ち込み、リターン。パスワードを尋ねられたら、パスワードを打ち込んで、リターン。

情報が表示される。そしてリターン。grub-efi のインストールが開始される。

終わったら、「sudo grub-install」と打ち込んで、リターン。パスワードを尋ねられたら、パスワードを打ち込んで、リターン。

「Installation finished. No error reported.」と表示されたら成功。

そして「sudo update-grub」と打ち込んで、リターン。パスワードを尋ねられたら、パスワードを打ち込んで、リターン。

「端末」を閉じ、コンピューターを再起動する。

macOS 上で bless

macOS で起動する。外付け HDD は繋いだまま。

冒頭と同様「ターミナル」を開く。

「sudo bless --folder /Volumes/uBoot/EFI/ubuntu/System/Library/CoreServices --file /Volumes/uBoot/EFI/ubuntu/System/Library/CoreServices/boot.efi --label Ubuntu」と打ち込んで、リターン。パスワードを尋ねられたら、パスワードを打ち込んで、リターン。

コンピューターを再起動する。

GRUB でブートしてみる

option キーを押したまま起動する。OS 選択画面が表示される。そこで option キーを離す。

矢印キーで「Ubuntu」という名のオレンジ色のアイコンを選択して、リターン。Ubuntu が起動を始める。但し、起動速度はやや遅いかもしれない。画面が真っ黒のまま、30秒ほど何も表示されない可能性がある。気長に待たれたし(外付け HDD の LED ランプが点滅している限り、起動プロセスは順調に進んでいることがわかる)。


説明は以上。


このやり方でインストールした Ubuntu を起動する際は、常に option キーを押しながらとなる。

冒頭でも述べたように、この外付け HDD を別の Mac に繋いで Ubuntu を起動することもできる。もっとも、グラフィックドライバーが適合していない場合はうまく表示されないことがある。その場合は、グラフィックドライバーをインストールする(詳細はここでは述べない)。また Wifi ドライバーが適合していない場合は Wifi に接続できない。その場合も Wifi ドライバーをインストールする(詳細はここでは述べない)。

今回は「できるだけ GUI アプリで(コマンドラインを避ける)。できるだけ既存のツールで(新たにプログラムをインストールすることを避ける)」を方針とした。そのため、再起動の回数がやや多い方法となっている。当初の見込みほど、コマンドラインを避けることはできなかったが(苦笑)、一つのインストール例を示すことはできたと思う。


この方法で Ubuntu をインストールした結果、内蔵ドライブの Windows が起動できなくなったという場合は こちらのサイト 参照してください(Windows インストーラーをダウンロードして USB メモリに書き込む必要がある。詳細は他のサイトをご覧ください)。


(2020-08-25追記)この記事とほぼ同じやり方で openSUSE Leap 15.2 の外付け HDD へのインストールおよび外付け HDD からのブートに成功した。openSUSE の場合、通常のインストールの途中で「ブートローダーなし」が選択できる。

« 最近のWindows 10 ISOをmacOS上でUSBメモリに書き込む | トップページ

コメント

コメントを書く

(ウェブ上には掲載しません)

« 最近のWindows 10 ISOをmacOS上でUSBメモリに書き込む | トップページ

無料ブログはココログ