mkusb を使って ワークショップ用USB起動システムを作る

「永続的パーティーションを持った USBメモリ起動の Ubuntu のつくりかた」
https://qiita.com/nanbuwks/items/c6c00f97a53a6b3c43cd

において、persistent-filesystem を持った USBメモリによる起動システムをいろいろ試してみました。その時の結論として、mkusb の選択となりました。


今回は、 mkusb を使って具体的なシステム構築作業をします。

# 環境

## 母艦

- Ubuntu-ja 20.04
- Lenovo ThinkPad X230 ほか

(2023/05/24追記：Ubuntu-ja 22.04 でも確認しました。)

## ターゲット


- ubuntu-ja-20.04.1-desktop-amd64.iso
- Sandisk Ultra Fit USB3.0 64GBytes および Ultra Fit USB3.1 16GBytes
(2023/05/24追記：ubuntu-ja-22.04-desktop-amd64.iso でも確認しました。)

# mkusb インストール

```

$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:mkusb/ppa
$ sudo apt update
$ sudo apt install mkusb usb-pack-efi
```

ここで、 universe レポジトリを追加していますが
https://help.ubuntu.com/community/Repositories/Ubuntu
によると
> Universe - Community-maintained free and open-source software.

だそうです。


# 起動

mkusb とタイプすると、mkusb-plug と mkusb の2つが出てきた。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/0e795e59-11cc-06a7-c12a-a94bab59530b.png)
。

https://ubuntuforums.org/showthread.php?t=1958073
によると mkusb-plug はについて以下のように書かれています。

> When you intend to create a USB boot drive, you should use a tool that is as reliable as possible. It should help you identify the target drive (avoid overwriting data in another drive) and it should create a working bootable drive.

より安全な mkusb-plug を使うことにしました。

sudo つけずに実行。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/901d30a0-b8c6-8eb1-b70c-48982403c74f.png)

起動するとソースファイルを聞いてくるので iso ファイルを選びます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/178b440e-d4ac-f9f5-ed66-79bf78f49fbf.png)

pを選びます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/fb60c93b-222a-2773-c244-42f5a245151e.png)

> do you expect the drive to contain filesystems other than VFAT and ISO9660?

よくわからないながら y とします。EXT3/4で persistant-filesystem パーティーションを作るかどうかということかな？

(2023/05/24追記：)
ここで No としたら、


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/ec4b71c1-784f-9405-b3f2-1f0dee05634d.png)

> do you expect the drive to contain an ISO9660 filesystem?

よくわからないながら y とします。ベースシステムをISO丸々コピーしたパーティーションにするということかな？ 


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/071bb8a0-50b0-adf2-bb32-afb3d9eac65f.png)

この時点でUSBメモリが刺さっていたら一旦抜いて「OK」を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/77385212-1e90-8703-bfec-d61e5b24ab93.png)

USBメモリをプラグインして「OK」を押します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2b0406c6-b46f-27ff-1266-905cdce55070.png)

書き込まれる内容を確認してOKを押します・・・が、表示がヘン。sdbとsdb1がiso9660??

また、Ubuntu22.04 で試したときは以下のようになってました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b852f1ab-d1c5-79d1-0c29-97aa6ff67695.png)

最後終わって調べてみたらこのようになっていました。
(Ubuntu20.04 の場合)
```

$ sudo fdisk /dev/sdc -l
ディスク /dev/sdc: 57.86 GiB, 62109253632 バイト, 121307136 セクタ
Disk model: Ultra Fit       
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x1db5d405

デバイス   起動 開始位置  最後から    セクタ サイズ Id タイプ
/dev/sdc1  *           0   5478143   5478144   2.6G  0 空
/dev/sdc2           8252     16187      7936   3.9M ef EFI (FAT-12/16/32)
/dev/sdc3        5480448 121307135 115826688  55.2G 83 Linux
```

多分、表示がバグっているのだと思います。
(Ubuntu22.04 の場合)
```
ディスク /dev/sdb: 14.32 GiB, 15376318464 バイト, 30031872 セクタ
Disk model: Ultra Fit       
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: F43A0113-8286-422A-A3F8-75BC5E55BD02

デバイス   開始位置 最後から  セクタ サイズ タイプ
/dev/sdb1        64  6685767 6685704   3.2G Microsoft 基本データ
/dev/sdb2   6685768  6694263    8496   4.1M EFI システム
/dev/sdb3   6694264  6694863     600   300K Microsoft 基本データ

```
このあと、USBメモリから起動したらこうなりました。
```
デバイス   開始位置 最後から   セクタ サイズ タイプ
/dev/sdb1        64  6685767  6685704   3.2G Microsoft 基本データ
/dev/sdb2   6685768  6694263     8496   4.1M EFI システム
/dev/sdb3   6694264  6694863      600   300K Microsoft 基本データ
/dev/sdb4   6696960 30031808 23334849  11.1G Linux ファイルシステム

```
Persistence ファイルシステムは最初の起動時に作られるようです。
さて、操作に戻って


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/439ca0d5-e7bc-00da-d559-57109f4c6341.png)

間違いなければ「Go」

# ダッシュボードの整理

不要なアプリのピン止めを外す
メール、アプリセンター、Helpなどを外しました。

# 完成

これで作った USB メモリを使って PC を起動すると以下のようになりました。



「インストールせずにUbuntuを使ってみる」を押すと、一旦画面が消えて操作できる画面になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f8a0f58c-72e5-8786-3151-a31f0f54c62d.png)


# ワークショップ用に設定

更に、設定してきます。
まずアップデート

```
$ sudo apt update
$ sudo apt upgrade

```

## 基本的な設定

タイムゾーンを設定

### ディレクトリ名を英語に変更

```

LANG=en_US.utf8 xdg-user-dirs-gtk-update
```

### サスペンド、ログオン関係 

- 電源の設定でスクリーンセーバーを切る
- サスペンドロックを以下のようにして解除

```

$ gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend false
```

# システムモニター


Gnome-Panel に秒を表示(固まっているかどうかの判定)

```

$ gsettings set org.gnome.desktop.interface clock-show-seconds true
```


~~$ sudo apt install gnome-shell-extension-system-monitor~~
~~$ sudo apt install gnome-shell-extension-prefs~~
~~として、以下のようにして設定~~

~~「システムモニターアプレットを Ubuntu 20.04 タスクバーに表示する」~~
~~https://qiita.com/nanbuwks/items/3bccce7f608c9c9091db~~

こちらを見て設定

「システムモニターアプレットを Ubuntu 24.04 タスクバーに表示する」
https://qiita.com/nanbuwks/items/50391c296740fa7a1dc2

## 追加アプリケーション

### 標準レポジトリからインストール

- vim
- gimp
- python3


### PPAやオリジナルdebファイルなどからのインストール

- google chrome
- kicad
- Arduino

- zoom

```
$ sudo apt install ./zoom_amd64.deb
$ sudo apt --fix-broken install
```
# Chrome のログインキーリングの要求を表示させないようにする


(2023/12/11 追記)
こちらのページを見て、設定します。
https://help.media.hiroshima-u.ac.jp/index.php?action=faq&cat=18&id=40&artlang=ja

# 日本語入力操作の設定

(2025/04/16 追記)
日本語変換をMoscを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/70d7791f-fcf5-41c4-8033-75635fe2a14a.png)

(2025/01/18 追記)
こちらのページを見て、設定します。
https://qiita.com/nanbuwks/items/d53911b0b8bfd8c6c548

(2025/04/16 追記)

Google Chrome 上で「Tabキーで選択」の表示が邪魔なのをOFFにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/7a641f5c-8968-4d2d-b2b5-6ba977bef4b1.png)

Moscの「ツール」-「プロパティ」の「サジェスト」タブで「入力履歴からのサジェスト自動表示を有効にする」と「システム辞書からのサジェスト自動表示を有効にする」 のチェックを外します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/bb91040b-5d6b-4bc5-948f-769db88562d8.png)

# サウンドアウトプットデバイスセレクタの追加
(2025/02/13 追記)
https://github.com/kgshank/gse-sound-output-device-chooser


:::note warn

なお、Ubuntu24.04だとこの拡張はエラーが出るようです。
同様の機能がシステムで実現しているので、Ubuntu24.04の場合は必要ありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8c1ea21a-eccd-4bad-8c97-bb446d6ab656.png)
:::
# バッテリ残量をパーセント表示
(2025/04/14 追記)
バッテリ劣化の個体のために、「設定」-「電源管理」-「全般」-「バッテリー残量を表示する」をONに


# マウスカーソルの変更
(2025/01/18 追記)
4Kディスプレイ環境や、視認性の悪い環境にあわせてカーソルを大サイズに変更。

(Ubuntu24.04)設定ーアクセスビリティーSeeing
# バックアップ

作った USB メモリ中のファイルシステムは以下のようになっています。

```

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
.
.
.
/dev/sdb1       2.7G  2.7G     0 100% /media/nanbuwks/Ubuntu 20.04.1 ja amd64
/dev/sdb3        55G  9.5G   42G  19% /media/nanbuwks/writable
/dev/sdc1       2.7G  2.7G     0 100% 
```

となった。

/dev/sdb3 が一通りインストールしたもの、で 9.5 G使用。

この 9.5G をバックアップすればいいのだけれど、ちょっと大きいかな？

# システムの複製

16G の USB メモリを使って、mkusb で ubuntu-ja-20.04.1-desktop-amd64.iso を新しくインストールした。

```

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
.
.
.
/dev/sdb1       2.7G  2.7G     0 100% /media/nanbuwks/Ubuntu 20.04.1 ja amd64
/dev/sdb3        55G  9.5G   42G  19% /media/nanbuwks/writable
/dev/sdc1       2.7G  2.7G     0 100% /media/nanbuwks/Ubuntu 20.04.1 ja amd641
/dev/sdc3        12G  114M   11G   2% /media/nanbuwks/writable1

```

この /dev/sdc1 と /dev/sdc3 が 新しくインストールした 16G のもの。

/dev/sdb1 と /dev/sdb3 が、既にインストールしていろいろ設定したもの。

```

$ sudo cp -a /media/nanbuwks/writable/* /media/nanbuwks/writable1

```

として、既にインストールした writable ボリュームの内容を 新しいUSBメモリの writable ボリュームにコピーすることで、システムの複製ができる。