ramfs rootfs initramfs

dodał: DDarko (2012-10-31 18:14),   tagi: linux

Czyli system Linux w pamięci RAM lub inaczej mówiąc RAM dysk.

​Po pierwsze rozwiązanie powinno działać na wszystkich Debiono-pochodnych dystrybucjach: Debian, Ubuntu, Mint itp.

Po drugie zaznaczę, że cała partycja root (/) zostanie załadowana do pamięci RAM, więc powinniśmy utworzyć oddzielną partycję na nasz system i oddzielną na pozostałe pliki (np. /home) chyba, że mamy bardzo dużo RAMu. Warto też zaznaczyć, że najlepiej posiadać 4 GB pamięci RAM lub więcej.

Następnie należy wykonać kopie zapasowe plików, które będziemy zmieniać:
cp /etc/fstab /etc/fstab.bak
cp /usr/share/initramfs-tools/scripts/local /usr/share/initramfs-tools/scripts/local.bak
cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak

Warto odchodzić nasz system poprzez usunięcie wszelkich zbędnych plików oraz katalogów typu doc, man, itp.. 

Pierwszym krokiem będzie modyfikacja /etc/fstab. Należy tam zlokalizować punkt montowania / oraz zamienić go na:
none / ramfs defaults 0 0

Następnie przejść do katalogu:
cd /usr/share/initramfs-tools/scripts/

i w pliku local zamienić linijkę:
mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}

na:
mkdir /ramdisk-tmp
mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramdisk-tmp
mount -t ramfs -o noatime,nodiratime none ${rootmnt}
cp -rfa /ramdisk-tmp/* ${rootmnt}
umount /ramdisk-tmp

oczywiście zapisać i wykonać polecenie:
mkinitramfs -o /boot/initrd.img-ramdisk

Ostatnik krokiem jest modyfikacja Grub'a. Mówiąc dokładnie pliku /boot/grub/grub.cfg. Najlepiej skopiować domyślną pozycję rozruchową, zmienić jej etykietkę na RamDisk oraz linijkę: 
/initrd /boot/initrd.img-wersja_kernela


zamienić na:
/initrd /boot/initrd.img-ramdisk


Pozostało już tylko zrestartować naszą maszynę i przy starcie wybrać odpowiednią pozycję w Grub'ie.