FAQ : ルートファイルシステムの最大サイズはいくつですか?

対象製品: Armadillo-840Armadillo-810Armadillo-500 FXArmadillo-500Armadillo-460Armadillo-440Armadillo-420Armadillo-300Armadillo-9Armadillo-240Armadillo-230Armadillo-220Armadillo-210Armadillo(HT1070)Armadillo-J

Atmark Distを使用してユーザーランドを作成した場合、標準ではルートファイルシステムはinitrd(Initial RAMDISK)上に構築されます。そのため、ルートファイルシステムの最大サイズは、initrdの最大サイズまでとなります。initrdの最大サイズは、カーネルの設定とRAMのサイズによって制限されます。

initrdもRAMDISKのひとつですので、カーネルのRAMDISKのサイズ設定によって、最大サイズが決まります。Armadillo-400シリーズでは linux-2.6.26-at は 32768kbyte(32Mbyte)、linux-3.14-at では 65536kbyte(64Mbyte)に設定されています。

RAMDISKのサイズは、Linux Kernel Configurationの下記メニューで変更できます。

Linux Kernel Configuration
  Device Drivers  --->
    [*] Block devices  --->
      (32768) Default RAM disk size (kbytes)

当然、RAMDISKサイズは無制限に増やせるわけではなく、物理的なRAMサイズによって上限が決まります。initrdに使用できるRAMDISKの最大サイズは、RAMのサイズからカーネルが使う場所を引いたものの約半分になります。

initrd最大サイズ = (RAMサイズ - (カーネルイメージやパラメータ、MMUテーブルの予約領域)) / 2

これは、ブートローダがイメージを一度RAM上に書き込む領域と、カーネルが実際に使用するために確保する領域が必要になるためです。ブートローダが使用した領域は、カーネルの初期化を終えた時点で解放されるので、RAM領域が無駄になることはありません。

なお、Atmark Distを使用して作成したユーザーランドのイメージファイルromfs.img.gzは、initrd(ルートファイルシステム)イメージを圧縮したものです。圧縮前のromfs.imgのサイズの上限が上記"initrd最大サイズ"となります。