USB起動版Raspberry Pi OSのパーティション自動拡張を止めるには


Raspberry Pi OSを起動しますと。

初回起動時、ルート(/)パーティションの自動拡張が行われます。

Windows PCのC:ドライブに相当しますが。

必ず、ストレージのすべての領域をルートに割り当ててしまうため。

困ったことに、D:ドライブのような別のパーティションを作ることができません。

・・・・・

D:ドライブを作るために、この仕様は、回避できないでしょうか?

そのような理由から。

Raspberry Pi OSの初回起動時、ルートパーティションの自動拡張を止められないか?別のパーティションを作るにはどうしたら良いか、調べてみました。

なおRaspberry Pi OS 64ビット版で試しております。


パーティション自動拡張についてRaspberry Piフォーラムの情報を検証

こちらの情報をもとに。

https://forums.raspberrypi.com/viewtopic.php?t=313003

次の2つのファイルを編集し、初回起動時のパーティション拡張を止められるかどうか試してみました。

  1. /boot/cmdline.txt
  2. /etc/init.d/resize2fs_once

/boot/cmdline.txtに該当の項目なし

USBストレージにRaspberry Pi OSを書き込んでみました。

こちらの手順になります。

USB起動版Raspberry Pi OS 64ビットの初期設定 令和5年(2023年)1月版
令和4年(2022年)2月。旧名称Raspbianこと、Raspberry Pi OSの64ビット版が正式リリースされました。 ...

フォーラムの情報では、/boot/cmdline.txtに次の項目がある、との情報ですが。

init=/usr/lib/raspi-config/init_resize.sh

書込み完了したストレージを確認してみますと。

テキストエディタで編集。令和5年(2023年)1月現在、該当init_resize.shの項目は見当たりません。

明らかに「ルートパーティションをリサイズするスクリプトを実行」のような、削除しても大丈夫そうな項目は見当たりません。

よって、cmdline.txtはそのまま使用することにします。


/etc/init.d/resize2fs_onceを削除

次に。/etc/init.d/resize2fs_onceファイルですが、こちらは確かに存在します。

次の手順で削除します

  1. USBストレージにRaspberry Pi OSのイメージを書込み。
  2. 別途、Raspberry Pi OSをmicroSDカードで起動。
  3. USB端子に、1番で書き込んだUSBストレージを接続。
  4. /mntにファイルシステムをマウント。
  5. /mnt/etc/init.d/resize2fs_onceを削除
  6. USBストレージをアンマウント。

/etc/init.d/resize2fs_onceファイルは確かに存在しました。

そしてUSBストレージから確かに削除しました。


/etc/init.d/resize2fs_onceを削除してから初回起動したものの

/etc/init.d/resize2fs_onceを削除したUSBストレージを、Raspberry Piに接続して。

Raspberry Pi OSを初回起動しました。

さて。

ルートパーティションは、自動拡張されるのでしょうか?

起動開始!

・・・・

・・・・

リサイズ中の表示が目に入りました。

Raspberry Piフォーラムの情報にも、確かに「/etc/init.d/resize2fs_onceを削除して起動したけれど、ルートパーティションの自動拡張を止められなかった」との報告が御座います。

ええ。よくわかります。

/etc/init.d/resize2fs_onceを削除しても止められません!※2023年1月現在の情報。


microSDカードで初期設定後、USBストレージにイメージを書き込む作戦

フォーラムの情報の最後の投稿の通り。

初回起動時のパーティション自動拡張は止められないため。

ルートパーティション以外の別のパーティションを作りたい、という要件に対応したい場合。

microSDカードで初期設定を完了後、そのイメージを取り出して、USBストレージに書き込むという方法が、最も確実かと思います。賛同致します。

というわけで。そのような手順で具体的に進めたいと思います。

microSDカードでRaspberry Pi OSを初期設定

まずは、microSDカードを使用して、Raspberry Pi OSを初期設定しましょう。

USB起動版Raspberry Pi OS 64ビットの初期設定 令和5年(2023年)1月版
令和4年(2022年)2月。旧名称Raspbianこと、Raspberry Pi OSの64ビット版が正式リリースされました。 ...

Raspberry Piで使用する場合、ランダムアクセスが高速で、最低読書速度30MB/sが保証されている、UHS-I U3 A2対応のmicroSDカードをぜひ選択しましょう。

ここでは、32GBのmicroSDカードを選択して初期設定してみました。64GBのメディアなら、ルートパーティションは64GBになりますが。16GBや32GBで作成しておいて、あとから拡張する手もあると思いますので、小さい容量で大丈夫かと思います。

このような感じで、32GBのmicroSDカードを使用して、Raspberry Pi OS(64-bit)を初期設定しました。

ルートパーティションは29.5GBの容量になりました。


microSDカードをddイメージ化

初期設定が終わりました、容量32GBのmicroSDカードですが。

Windows PCでイメージ化してみました。

使用するアプリはこちらになります。

https://gitlab.com/bztsrc/usbimager

usbimagerを使用させて頂きました。

こちらをダウンロード・展開・実行します。

Windows PCにmicroSDカードを取り付けて「Read」ボタンをクリックします。

上図のように、ddファイルの作成が開始されます。

作成が完了すると、確かに容量29.7GBのddイメージファイルが作成されました。


ddイメージをUSBストレージに書込み

microSDカードを取り出して、代わりにUSBストレージを取り付けます。

書込みはRaspberry Pi Imager・・・・は使用できませんでした。

バイト境界の問題があるようです。

よって、書込みも、同じくusbimagerを使用させて頂きました。

このような感じで、容量1TBのUSB接続のHDDに書き込みました。

数分待った後、特に問題なく、書込みが完了しました。


ddイメージを書き込んだUSBストレージでRaspberry Pi OSを起動

Raspberry PiのmicroSDカードを取り外して。

EEPROMブートローダーは、最新版に更新しました。

Raspberry Pi 4のブートローダーEEPROMを最新版に更新するには
令和4年、2022年12月現在。Raspberry Pi 4のブートローダーは、このような画面なのですね。ふむふむ。 公式のRaspb...

USBストレージを接続して起動してみました。

問題なく起動し、確かに/dev/sdaの容量は1TBと表示されています。

cfdiskコマンドで確認すると、Free spaceとして901.8G確保されています。


以上のような感じで。

結論として、Raspberry Pi OSの初回起動時のルートパーティション拡張は止められませんでした。

それは諦めて。

容量32GBのmicroSDカードでRaspberry Pi OSの初期設定を完了後。

ddイメージを作成し、そのイメージをUSBストレージに書き込むことで。

ルートパーティションの容量が32GBのRaspberry Pi OS起動用のUSBストレージを作成することができました。

・・・

ルートパーティション以外に、swapパーティションやNAS(ファイル共有)用のパーティションを作ったり、細かくパーティションを作る需要はあると思うのですが。

「Raspberry Pi」という存在。シンプルさを尊重したシステムでは。

細かいパーティションとシンプルさは、相反する要件なのかな?と考えれば、そういうもの、納得できる気がする内容となりました。

細かいパーティションが必要な場合、上記の作り方が助けになれば幸いです。

スポンサーリンク

フォローする

スポンサーリンク