タイトルが文字数制限で書けなかった、、、書きたかったタイトルはこれ
「ラズパイをoverlayfsでROM化する際に、何で /boot/config.txt に initramfs initrd.gz 」と書くのか考えてみたです。
ROM化というのは、
ラズパイの起動用マイクロSDに書き込みを行わないようにして、電源ブツ切り対応にしたり、マイクロSDの書き込み回数制限(1000回とか)に達しないようにする技の事です。
(詳しくはググってください)
このROM化の方法の1つに、overlayfs方というLinux純正機能を使う方法があります
(〃)
このoverlayfs方をラズパイに適用する時、/boot/config.txtの最終行に
initramfs initrd.gz
と書くのですが、トラブった際に理由が知りたくなり、なんとなくわかったのでここに書き残しておきます
------------
initramfs initrd.gz の直接的な意味は、
ラズパイOS(Linux)起動のため
gz形式で圧縮された initrd.gzというファイルをrootfsという一時的なメインメモリ上のRAMDisk読み込んで、initファイルを実行してLinuxを起動するというコマンドになります。
(ubuntuとかだと、grubがやっている事。ラズパイはlinuxとしては特殊な起動方法で行われます。あのマイクロSD内に なぜか fat32フォーマットされた領域があり、biosがそこを /boot として認識してブート動作します。詳しくはググってください)
そこで思うわけです。
何でオリジナルの /boot/config.txtにはinitramfs initrd.gz が無いのにブート出来るのかと。
無いとブートできないじゃないか と。
調べたところ、
どうやら、Linuxカーネルはビルドされる際、デフォルトのinitramfsがカーネルに埋め込まれており、指定しなければこれが呼ばれるようです。
ラズパイはこの仕組みをつかって、initramfs無指定でもブートしていると分かりました。
---------------
あと、overlayfsでROM化する手順に
git clone https://github.com/josepsanzcamp/root-ro.git
rsync -va root-ro/etc/initramfs-tools/* /etc/initramfs-tools/
mkinitramfs -o /boot/initrd.gz
調査の結果、initramfs には