ロボットプログラミングⅡ-2021:USB Linuxの作り方 (Ubuntu20.04)

この記事は金沢工業大学 ロボティクス学科で2021年後学期開講中のロボットプログラミングⅡ用です.

今期の授業では,WSL2ではなくUSBメモリにUbuntu20.04をインストールします.これをUSB Linuxとよぶことにします。この方法では、Windowsのハードデスクを消費しません。Linuxシステム,ROS2と今後開発していくソフトウェアは全てこのUSBメモリの中に保存されます。ネットワーク環境やUSBメモリの読み書きの速度にもよりますが、特にトラブルがなければトータルの作業時間は1時間から1時間半ほどです。

この作業はできるだけ自宅で実施してください.学内で作業するとファイヤーウォールの関連でインストールにトラブルが出る場合があります.

注意:以下の作業でWindowsが消えたり、起動しなくなったり、ファイルが消えたりしても、私は一切責任を取れません。重要なファイルは必ずバックアップを取ってから、自己責任で作業をしてください。

 

準 備

  • Windows PC: 1台
    • BIOSモード:UEFI
      • BIOSモードの確認は検索バーに[msinfo32]と入力してEnterキーを押すと[システム情報]が開き確認できる。BIOSモードがLegacy BIOSのときは、Googleで調べてUEFIに変更してください。
    • BitLocker解除:Windowsを入れているパーティションが暗号化されているか調べて,暗号化されている場合はBitLockerが機能しているので,以下のサイトを参考にBitLockerを解除してください.
  • インストール用のUSBメモリ(以降、インストールUSBと表記 ):1個
    • Ubunut20.04のイメージは約2.7GBなので4GBもあれば十分。USB2.0でもOK。
    • この例ではTOSHIBA USB2.0メモリ TNU-A016B (8GB)を使用した。
  • UbunutuをインストールするUSB3.0メモリ(以降、Ubuntu USBと表記):1個
    • 授業だけなら64GBで十分。専門ゼミやPDⅢを視野に入れると128GBあるとうれしい。USBメモリが安価になり128GBでもAmazonなら数千円で購入できる(2021年4月時点)。
    • 事前に次のUSBメモリ(Flash Drive)を試した。認識はWindowsの[コンピュータ管理]→[ディスクの管理]で認識されたディスク容量。
      • Transcend USB3.1 Flash Drive JetFlash 710 (128GB) 認識112.64GB
      • SanDisk USB3.1 Flash Drive Ultra Fit (128GB) 認識114.6GB
      • Samsung USB3.1  Flash Drive FIT Plus (128GB) 認識119.51GB
  • 作業を間違えるとWindowsが丸ごと消えるので、作業前に重要なファイルは必ずBoxや外付けディスク等にバックアップを取っておく。

作業の流れ

  • 作業1:Ubuntu 20.04 LTSイメージのダウンロード(所用時間:約5分)
  • 作業2:Rufus (USBメモリ等にイメージを書き込むソフト)でUbuntuイメージをインストールUSBに書き込む(所用時間:約10分)
  • 作業3:インストールUSBでPCを起動して、Ubuntu USBにUbuntuをインストールする。(所用時間:約30分~1時間)
  • 作業4:動作確認(所用時間:約3分)
  • 注:所用時間は目安でありネットワーク環境によって大きく変わります。

作業1:Ubuntu 20.04 LTSイメージのダウンロード

作業2:RufusでUbuntuイメージをインストールUSBに書き込む

  • 以下のサイトからRufus 3.13 Portableをダウンロードして、Ubuntuイメージと同じ場所に保存する。探すのが面倒な場合はここをクリックする。
  • インストールUSBをPCに差し込む。
  • ダウンロードしたRufusはポータブル版なのでインストール不要。rufus-3.13p.exeをダブルクリックすると起動する。
  • 起動したら下図のように設定してから、右下の[スタート]をクリックする。途中でいくつか聞かれるがデフォルトのままでOK。Ubuntuのイメージの書き込みが終わったら[状態]の[準備完了]が全て緑色になるので[閉じる]をクリックして終了する。
    • デバイス:USBメモリを選択する。
    • ブートの種類:右にある[選択]をクリックして、ダウンロードしたファイルを選択し、[開く]をクリックすると、ブートの種類が下図のように[Ubuntu-20.04.3.0-desktop-amd64.iso]となる。
    • その他の項目は以下のようにデフォルトのままでOK。書き込みが終わったら[閉じる]をクリックする.

 

作業3:インストールUSBでPCを起動して、Ubuntu USBにUbuntuをインストールする。ネットワークに接続された環境で行う。

  • Ubuntu USBとイメージを書き込んだインストールUSBの2つのUSBメモリをPCに差し込み、PCを再起動する。
  • 再起動したらすぐBIOS画面(私のPCではF2、機種で違うので調べる)にして、BOOTのメニューでUSBメモリからブートできるように,USBメモリを一番最初に起動するよう設定する。

  • [GNU GRUB]の画面になる。1番上の[Ubuntu]が選択されていることを確認してEnterキーを押す。

 

  • [Welcome]の言語選択の画面になるので、一番下の[日本語]を選ぶと以降日本語でインストール作業ができる。日本語を選択して[Ubuntuをインストール]をクリックする。

  • [キーボードレイアウト]の画面になるので、自分のキーボードが選択されていることを確認して、[続ける]をクリックする。

 

  • 有線LANを接続していないと、[無線]の画面になるのでwifi-fiを設定する。接続するネットワークを選択し、パスワードを入れる。
  • [アップデートと他のソフトウェア」の画面になるので、以下のように設定して[続ける]をクリックする。

  • Turn off RSTが表示されインストールが止まる場合
    • DellのPCなどでは標準でRST(Intel Rapid Storage)が有効になっており,インストールの途中で以下の画面が出て止まります.BIOSでRSTを無効にすればインストールできますが,Windowsが起動しなくなるようです.この症状が出る場合はUSB Linuxのインストールは止めてWSLをインストールしてください.
       
  • [インストールの種類]の画面になる。これからの作業を間違えるとWindowsが消えてしまうので、これから細心の注意を払う。インストールの種類は[それ以外]を選択して[続ける]をクリック。

    • Ubuntu USBに割り当てられている領域を選択する。[サイズ]を見るとどの領域に割り当てられているかわかる。私の場合は、USBメモリが128GBなので13065MBのサイズとなる。全部OSに認識されるわけではないので、それに近い[空き領域]のある120945MBが[/dev/sdb]に割り当てられていることがわかる(PCの構成によっては/dev/sda、/dev/sdacの場合もある)。もし、[/dev/sdb]の下に[空き領域]がない場合は空き領域を作らなければならない。[/dev/sdb1]を選択して、左下の[-]をクリックする。そうすると[/dev/sdb1]が[空き領域]になる。

 

  • USBにはUbuntuのブートローダがインストールされるEFIシステムパーティションとUbuntuがインストールされるルートパーティションを作る。まず、EFIシステムパーティション領域を作成する。上図の[空き領域]になった箇所を選んで、左下の[+]をクリックすると次のウインドウが開くので、次のように設定して[OK]をクリックする。
    • サイズ:200MB
    • 新しいパーティションのタイプ:基本パーティション
    • 利用方法:EFIシステムパーティション

  • 次に、ルートパーティションを作る。同様にして空き領域を選び、左下の[+]をクリックして次のようにパーティションを作成する。空き領域の全てのサイズをルートパーティションに割り当てる。マウントポイントを/にすることを忘れないように。[OK]をクリックする。
    • 新しいパーティションのタイプ:基本パーティション
    • 利用方法:ext4ジャーナリングファイルシステム
    • マウントポイント:/

 

  • 次にUbuntuを起動するブートローダをインストールするデバイスを指定する。USBから起動したいのでUSBに割り当てられているデバイスを選ぶ。USB以外のデバイスを選ぶとWindowsが起動しなくなるから注意。この作業も細心の注意を払う。
    この例の場合は、一番下の[ブートローダをインストールするデバイス]は上で作成したEFIシステムパーティションの/dev/sdb1となる。[インストール]をクリックする。
  • [ディスクに書き込みますか?]が出てくるので、初期化されるパーティションに間違いがないか確認する。間違えるとWindowsが消えたり、起動しなくなるのでよく確認すること。問題がなければ[続ける]をクリックする。以下の写真例で、下から2行目に[パーティション1をESPに]とあるが、これはEFI System Partitionのこと。電源を入れてコンピュータを起動すると、このESPからUbuntuはブートされる。

  • [どこに住んでいますか?]画面になるので、地方に住んでいても[Tokyo]のまま[続ける]をクリックする。

  • [あなたの情報を入力してください]画面になるので、必要な情報を入力して[続ける]をクリックする。下図は例なので、自分の名前やユーザ名に変更する。私の場合は、複数のメーカのUSBメモリを使用しているので[コンピューターの名前]をUSBメモリのメーカー名にしている。

  • [Ubuntuへようこそ]画面になり、システムがUSBメモリにインストールされる。終わるまでしばらく時間がかかる。SanDiskは約16分かかった。
  • [インストールが終了しました]画面になる。[今すぐ再起動する]をクリックする。

  • 下図のように”Please remove the installation medium, then press ENTER”と表示されるので,インストールUSBを抜いてからEnterキーを押すと再起動する。間違って、Ubuntu USBを抜かないように注意!再起動の際は,まず,Ubuntu USBからブートできるようにBIOSを設定する。

作業4:動作確認

  • 再起動するとGRUBの画面になるので10秒待つと自動起動する。GRUBはGNUプロジェクトで開発されているブートローダ。下図の場合、Windowsを起動したい場合は[Windows Boot Manager]を下矢印キーで選択してEnterキーを押すとWindowsが立ち上がる。もし、GRUBの画面が出ずにWindowsが立ち上がったらBIOSでUbuntu USBからブートするように設定する。

  • 以下の画面になれば成功。パスワードを入れてログインしよう!

  • なお,上のように表示されずに,下図のように”grub>”と表示されたら”exit”と入力する.Windowsが起動されると思う.この場合はブートローダを修復する必要があるので,このページの一番したの”ブートローダの修復”の作業をお香なう.

少し幸せになる設定

  • よく使う設定等を紹介します.
  • ホームディレクトリのフォルダ名を日本語から英語に変更する(必須)。
    • Linuxはコマンドを打つ場合が多いので日本語のディレクトリは何かと困る。以下のコマンドを端末で実行する。端末は、下図の左下隅にある9個の点アイコン[アプリケーションを表示する]をクリックすると最上部に現れる[検索窓]に[terminal]と入力すると見つけることができる。なお、以下のコマンドで$はプロンプトなので打ち込まない。
    •  $ LANG=C xdg-user-dirs-gtk-update
      • Enterキーを押すとウインドウが開くので、”Don’t ask me this again”にチェックを入れて、[Update Names]をクリックする。
    • CAPS LOCKとCTRLキーの入れ替え(任意)
      •  CTRLキーを使う機会が多いので入れ替える。
      • エディタで/etc/default/keyboardファイルの中にあるXKBOPTIONS=”ctrl:nocaps”と変更する。エディタは何でも良いが、よくわからない場合はgeditが簡単なのでおすすめ。以下のコマンドでファイルを開いてWindowsのメモ帳のようにファイルを変更することができる。

        • $ sudo gedit /etc/default/keyboard
    • 時間をローカルタイムにする(必須)
      • 同じコンピュータでWindowsとLinuxを使うとWindowsの時間帯が世界標準時になり-9時間ずれるので、Linuxの時間を次のコマンドでローカルタイムにする。この作業は重要.
        • $ sudo timedatectl set-local-rtc true
    • USBメモリを長持ちさせる(任意)
  •  アプリのインストール(任意)
    • 端末を開き、以下のコマンドを実行してインストールする。
      • $ sudo apt install chromium-browser
      • $ sudo apt install git emacs vim htop tmux grub-customizer
  • この時点でUSBメモリを約9GB消費した。次のコマンドで確認できる。
    • $ df

ブートローダの修復

  • “grub>”の画面で止まってしまう場合は,OSを起動するブートローダが壊れているので,これを修復する必要がある.
  • 修復には,まず,インストール作業で実施したように,インストールUSBをさして,コンピュータを起動する.そうすると,[Welcome]の言語選択の画面になるので、一番下の[日本語]を選ぶと以降日本語でインストール作業ができる。日本語を選択して[Ubuntuを試す]をクリックする。
  • Ubuntuが起動するので,端末を開き,次のコマンドを入力して,ブートローダを修復するboot repairというアプリをインストールする.
    • $ sudo add-apt-repository ppa:yannubuntu/boot-repair
    • $ sudo apt update
    • $ sudo apt install -y boot-repair
  • インストールが終わったら,次のコマンドを端末に入力してboot-repairを起動する.
    • $ boot-repair
  • boot-repairのウインドウが開いたら,”Recommended repair”をクリックする.ブートローダが修復される.
  • 再起動して,問題ないか確認する.
  • なお,ブートローダの再インストールについては,次のサイトが参考になります.

お疲れ様!

 

コメント

タイトルとURLをコピーしました