GNU/Linux >> Linux の 問題 >  >> Linux

Linux ramdisk (/dev/ram0 - /dev/ram15) の量とサイズを変更するにはどうすればよいですか?

カーネルのコンパイル時間

.config で設定できるカーネル構成オプションは 2 つあります。 ファイル:

CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=10485760

これにより、ブート時に 10G の RAM ディスクを 1 つ作成するようにカーネルが構成されました。

注:

  • CONFIG_BLK_DEV_RAM_SIZE 単位は KB です。
  • コンピュータに実際に搭載されている RAM より多くのメモリを指定しないでください。
  • menuconfig で [デバイス ドライバー] -> [ブロック デバイス] の下を見てください。

起動時間

カーネル ブート パラメータ ramdisk_size を使用して、作成する RAM ディスクのサイズを指定できます。 .例:

kernel /vmlinuz-2.6.32.24 ro root=LABEL=/ rhgb quiet ramdisk_size=10485760

これで、マシンを起動してファイル システムを作成し、マウントして、ブロック デバイスとまったく同じように使用できます。

# mkfs.xfs /dev/ram0
# mount /dev/ram0 /mnt/ramdisk

ソース:

<オール>
  • http://www.vanemery.com/Linux/Ramdisk/ramdisk.html [死んだ]
  • https://www.kernel.org/doc/Documentation/blockdev/ramdisk.txt

  • 代わりに tmpfs を使用する必要があります。

    mount -t tmpfs -o size=10g none /mnt/point
    

    起動後にカーネル パラメータを変更せずに大きな RAM ディスクを作成するには、tmpfs を使用してファイルを作成し、ループ経由でマウントし、ファイル システム経由でマウントします。

    mount -t tmpfs -o size=200M tmpfs temp/
    cd temp/
    dd if=/dev/zero of=disk.img bs=1M count=199
    losetup /dev/loop0 disk.img
    mkfs.ext4 /dev/loop0
    cd ..
    mount /dev/loop0 temp2/
    

    おそらく、複数の異なるレイヤーを通過すると、パフォーマンスが少し低下します...しかし、少なくとも機能します.


    Linux
    1. / dev/randomを使用してLinuxでランダムパスワードを生成する方法

    2. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

    3. / dev/randomと/dev/ urandomをいつ使用するか?

    1. Linux – / dev / urandomで「u」という文字は何を意味しますか?

    2. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

    3. /dev/random または /dev/urandom を base64 でエンコードする方法は?

    1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

    2. カーネル:/dev/kmem と /dev/mem を無効化

    3. Linux が /dev/tty と /dev/tty0 を使用する方法