ラズパイ4のUSB-SSD起動(2)

 前回はSSDにraspbianをインストールしたもので試したが、今回は稼働中のSDカードをSSD(今回はUSBメモリーで代替)にコピーしてUSB起動する方法について試してみた。
 システムのコピーにはWindowsのWin32DiskImagerを使う方法とLinuxのコマンドdumpを使う方法がある。当初Win32DiskImagerを使う方法を試したが、/rootが入ったパーティションにPARTUUIDが割り振られず起動出来なかった。そこで二番目のdump方式に切り替えた。しかし、この方法も立ち上がるもののディスクトップ画面の表示の日本語が□になるなどおかしくコントロールできない。

 これでは使えない。暫し悩んだがもしかしてコピー先の容量が少なくコピーが十分できなかったのではないかと思いついた。同じ16Gのものを使ったので大丈夫と思っていたが微妙にサイズには違いがあるものもあるようである。

 そこでコピー先のUSBメモリーを32Gに変えて試してみた。取りあえずはWin32DiskImagerでやってみると上手く起動し16Gの時の様な不具合は無く全てがコピーされており問題なく動作した。
 以前16GのSDカードで動いているシステムを32GのUSBに置き換えた時に体験しているはずであるが、すっかり忘れていた。全体の流れは、

 〇現在動いているSDカードをWindowsパソコンを使ってWin32DiskImagerによりUSBメモリーにコピーする。
 〇起動用SDカードを用意してそれをFAT32でフォーマットしてUSBメモリーの/boot以下にあるファイルを起動用SDカードにコピーする。
 〇起動用SDカード、USBメモリー両方のPARTUUIDを確認する。
 〇起動用SDカードにあるcmdline.txtでroot=以下のPARTUUIDを確認しUSBメモリーと異なる場合は修正する。今回はコピーしているため合っているはずである。
 〇USBメモリーの/root/etcにあるfstabの/bootを指定しているデバイスのPARTUUIDを起動用SDカードのものに修正する。

 これででラズパイ4の所定の位置に刺して電源を入れれば起動するはずである。
 具体的な方法は以下の通りである。

1.イメージファイルの作成
 ①コピーしたいシステムの入ったSDカード(16G)を変換器などを使いWindowsパソコンに刺す。
 ②Win32DiskImagerを立ち上げ、Image Fileの欄にイメージファイルを置くディレクトリーとファイル名をいれる。
  デバイスは刺したSDカードのドライブを選択。今回はDドライブ
 ③最下段にあるボタンの内「READ」を選択すると書き込みが始まり進行を示す棒グラフが伸びてくる。SDカードにもよるがかなりの時間、数10分を要する。


2.イメージファイルのコピー先
 ①パソコンからコピー元のSDカードを抜き、USBメモリーを挿す。
 ②イメージファイルは書き込みのものであるのでそのままとしてドライブを確認し変わっていれば変更する。
 ③下段の「Write」をクリックすると書き込みが始まり進行状態を示す棒グラフが表示される。これも読み込みよりさらに時間が掛かるので辛抱が必要である。

3.起動SDカードの作成
 ①起動用に使うSDカードを変換器などを使いWindowsパソコンに刺し、SD Card Formatterなどを使いFAT32でフォーマットする。
 ②USBメモリーをWindowsパソコンに刺し、/boot以下にあるファイル、フォルダ全てを起動用SDカードにコピーする。
 ③終了すればSDカードを変換器を使い稼働しているラズパイに刺す。
  $ sudo blkid
 でSDメモリーのPARTUUIDを確認する。
pi@raspberrypi:~ $ sudo blkid
/dev/sda1: LABEL="M-^C{M-^CM-^JM-^CM-^EM-^A[M-^CM-^@" UUID="4414-3F54" TYPE="vfat" PARTUUID="b275bf8f-01"
 ここでは/dev/sda1となっているが、構成により/dev/sdb1などになるため、どれがSDカードのものか分からない時は、抜いた状態と刺した状態それぞれで$ sudo blkidを実行して確認すると良い。

4./root/etc/fstabの修正
 ①作成したUSBメモリーをラズパイに刺し、/mntなどにマウントする。(自動でマウントされることもある。)
 ②/mnt/etcに移動して
  $ sudo vi fstab  --------ここはrootで起動する。
  ここで内容を以下の通り変更する
proc            /proc           proc    defaults          0       0
PARTUUID=5e3da3da-01  /boot           vfat    defaults          0       2
PARTUUID=5e3da3da-02  /               ext4    defaults,noatime  0       1
 この赤の部分を起動用SDカードのPARTUUIDであるb275bf8f-01に変更して保存する。

 これで起動用SDカード、 rootfsのUSBメモリー共に修正出来たので、ラズパイ4にSDカードはカードスロット、usbメモリーはUSBのコネクターに挿入して起動する。
 これで起動するはずである。次回はdumpを試してみる。