![images](../img/imgtop_sub_r.png)
OSを外付けのストレージに設置することで、コンパクトで疎結合な環境にできます。[※1]
- ※1
- たんにOSを外付けストレージに設置するだけなら、レスキューくらいにしか使えないと思うかもしれませんーーでもいまの仮想化技術(コンテナふくむ)を組み合わせれば、指先ほどのシリコンデバイスに、数十から数百のさまざまなOSを入れ、そのなかで大規模なネットワークを構築することができます。これを遠隔操作の各種プロトコルと組み合わせれば、それぞれのOSをGUIで使うこともできますしねーーネットワークは、クラウドなど手の届かないところにあるのものではなく、自分の手のひらの上に作ることができるものです:
- ・
- OSの仮想化ソフトを使う[準備中]:KVM, VMware, Hyper-V, Parallels Desktop
- ・
- サーバやパソコンを遠隔から操作する[準備中]:CLI (SSH) , GUI (VNC, RDP) , GUI/Window (X Window System (X.Org), Wayland (Mutter))
関連
- ◯
- OSの2大グループ[準備中]:UNIX-like OS (Linux (Ubuntu) , BSD (macOS)) , Windows NT (Windows)
検証
- ・
- OS:Ubuntu 22.04, Windows 10
- ・
- OS(設置対象):Ubuntu 22.04
概要:Linux
外付けのストレージにOS(Linux )を設置する手順です。[※1]
次の点に注意する必要があります:
- ◯
- 既存のストレージ
- ・
- 既存のストレージを、インストレーション先に選択しない(注意:この操作でストレージの選択を誤ると、既存のOSが消去されます)
- ◯
- OSをインストールする外付けストレージ
- ・
- パーティション形式を変更しておく:gpt (注意:この操作は、外付けストレージの中身を消去します)
- ※1
- ストレージに一般のUSBフラッシュメモリを選ぶこともできますが、設置にも起動にも時間がかかるので、推奨されません(設置だけで数時間単位になります)。USBーSSDなら、問題なく利用できます(USBーSSDも、NANDフラッシュメモリという点では一般のUSBフラッシュメモリと同じですが、構造に違いがあります)。
概要:インストーラのバグ?への対応:Linux (Ubuntu 22.04)
設置するOSがUbuntuの場合、インストーラのバグ?により、指定したEFIパーティション(ESP)にブートローダが格納されません。そのため、次のいずれかを行う必要があります:
- ◯
- 既存のストレージ
- ・
- 選択#1:インストレーション中に、既存のESPをインストーラに認識させないよう、フラグをいったん削除する(インストレーション後に、元に戻す)
- ・
- 選択#2:インストレーション後に、手動で、既存のESPに格納されたブートローダを、外付けストレージに移動させる
手順:Linux (Ubuntu)
OSのインストレーションを開始します:
- try or install ubuntu
いったん、試用モードに入ります:
- welcome - english - [try ubuntu]
ターミナルを起動し、外付けストレージのバーティション形式を書き換えます(注意:この操作は、外付けストレージの中身を消去します):
$ sudo -s $ lsblk # デバイス群を確認 $ parted /dev/${strage_for_unix} > print > mklabel >> gpt > quit
- ※
- 必要なら、このタイミングで選択#1の前半を実行します。
OSのインストレーションを再開します:
- install ubuntu <version> lts - welcome - english - keyboard layout - english (us) - english (us) - wireless - wi-fi security: ... - password: ... - updates and other software - apps: minimal installation - other options: <off>
インスーレーション先のストレージを選択し、パーティションを更新します(注意:この操作でストレージの選択を誤ると、既存のOSが消去されます):
- installaiton type - something else - installaiton type - device: /dev/<strage_for_unix> # 既存のパーティションがあれば、”- ”ですべて削除 - free space - '+' > create partition # 追加:パーティション(ファーム用) - size: 200 mb - type for partition: primary - location for partition: begginning of this space - use: efi system partition - free space - '+' > create partition # 追加:パーティション(システム用) - size: ... mb - type for partition: primary - location for partition: begginning of this space - use: ext4 journaling file system - mount point: / - format: <yes> - device for boot loader insallation: /dev/<strage_for_unix> (...) # 選択:ブート領域 - [install now] # このとき、インストレーション領域として/dev/<strage_for_unix>を選択しておく
OSのインストレーションを終了します:
- where are you ? - tokyo - who are you ? - name: <user_name> - computer's name: <host_name> - username: <uid> - password: <password>
いったん、試用モードに入ります:
- installation complete - [continue testing]
- ※
- 必要なら、このタイミングで選択#1の後半を実行します。
PCをリブートするか、パワーオフにします:
$ reboot $ shutdown -h now
手順:選択#1:インストレーション中、既存のESPを認識させない:Linux (Ubuntu)
OSのインストレーション中に、ESPをインストーラに認識させないようにする手順です。
OSのインストレーション前に、試用モードでターミナルを起動し、既存のストレージのESPフラグを変更します:[※1]
$ sudo -s $ lsblk # デバイス群を確認 $ parted /dev/${strage_for_windows} > print > set 1 boot off > set 1 esp off > print > quit
OSのインストレーション後に、使用モードでターミナルを起動し、既存ストレージのESPフラグを元に戻します:[※1]
$ sudo -s $ parted /dev/${strage_for_windows} > print > set 1 boot on > set 1 esp on > print > quit
- ※1
- これを実行すると、パーティションのフラグは次に変わりますが、元に戻すときに明示的にオフにする必要はありません(ESPフラグを設定すると、このフラグは消えます):msftdata
手順:選択#2:インストレーション後に、ESPを編集する:必要なブートローダを追加する:Linux
外付けストレージのESPに、手動でブートローダを格納する手順です。
$ sudo -s $ mkdir ${mount_point} $ mount /dev/${esp_for_linux} ${mount_point} $ mount /dev/{esp_for_linux} ${mount_point}/boot/efi $ grub-install --boot-directory=${mount_point}/boot --efi-directory=/${mount_point}/boot/efi # OSをリブート $ blkid # ESPのUUIDを確認 $ vi /exp/etc/fstab # ESPのマウントポイントを書き換え # OSをリブート $ update-grub
手順:選択#2:インストレーション後に、ESPを編集する:不要なブートローダを削除する:Linux
既存のESPに格納されたブートローダを、削除する手順です(Linux を使った手順になります)。[※1]
- ・
$ sudo -s $ efibootmgr # ブートローダの一覧 BootCurrent: ... ... BootOrder: ... Boot${boot_number}${active_flag} ${description} ... $ efibootmgr --inactive --bootnum ${boot_number} # ブートローダを無効化 $ efibootmgr --bootnum ${boot_number} --delete-bootnum # ブートローダを削除
- ※1
- Utuntuでは、既定でESPはに次のフォルダにマウントされています:/boot/efi
手順:選択#2:インストレーション後に、ESPを編集する:不要なブートローダを削除する:Windows
既存のESPに格納されたブートローダを、削除する手順です(Windows を使った手順になります)。[※1][※2][※3]
> bcdedit /enum firmware > bcdedit /delete <identifier> # ubuntuのID > diskpart >> list disk >> select disk 0 >> list volume # ここから:マウントされていなければ: >> select volume <efi_volume_number> >> assign letter=<letter> # ここまで >> exit > <letter>: > dir > cd efi > rmdir /s ubuntu
- ※1
- コマンドプロンプトの管理者モードで実行します(PowerShellの管理者モードには権限がありません)。
- ※2
- 外付けストレージのUEFIファームウェア・アプリケーションを削除するときは、外付けストレージを差したまま、Windowsを起動します。
- ※3
- 外付けのESPは、Windows でも通常(どれかのレターで)マウントされています。