码迷,mamicode.com
首页 > 系统相关 > 详细

转:Linux - Load your root partition to RAM and boot it

时间:2015-05-18 16:27:13      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:

This tutorial will guide you through the steps to modify your initramfs to load all files from / to a tmpfs. This will only work with Debian or Ubuntu ? or any unix thats supports booting from a initramfs. Since this is a virtual filesystem in RAM, not a virtual harddisk, this has many advantages.

What you need:
* lots of RAM
* Debian based distribution or any that supports booting from initramfs
* mkinitramfs or a tool to build a new initramfs
* some linux knowledge
* no need to create an image
* no need for Grub4Dos
* no need for a "special driver"

Step 1:
Choose a distribution thats supports booting from initramfs. (like ubuntu)

Step 2:
Install to harddisk. Make sure you split it into multiple partitions (/, /boot, /home, swap, ...).

Step 3:
Boot your new system, install updates, drivers if neccessary (this will improve performance), strip it down to the minimum. Every file will be loaded to RAM ! A fresh install uses about 2 GB auf harddisk-space.

Step 4:
modify /etc/fstab :
* make a backup

cp /etc/fstab /etc/fstab.bak

* find the line specifing the root partition and change it in:

none / tmpfs defaults 0 0

* save

Step 5:
edit the local script in your initramfs:

cd /usr/share/initramfs-tools/scripts/

* make a backup of /usr/share/initramfs-tools/scripts/local

cp local local.bak

* modify local, find this line:

# FIXME This has no error checking

# Mount root

mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}

* change it to:

# FIXME This has no error checking

# Mount root

#mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}

mkdir /ramboottmp

mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp

mount -t tmpfs -o size=100% none ${rootmnt}

cd ${rootmnt}

cp -rfa /ramboottmp/* ${rootmnt}

umount /ramboottmp

* save
* execute, or rebuild initramfs

mkinitramfs -o /boot/initrd.img-ramboot

* replace modified local with original file

cp -f local.bak local

Step 6:
* modify this file (needs a better solution)

/boot/grub/grub.cfg

* copy the first boot entry and replace the /initrd line with this:

/initrd /initrd.img-ramdisk

* label the new entrie as RAMBOOT
This will boot our generated initramfs instead the original one.


Step 7:
* reboot
* choose standart boot (no ramdisk)
* choose RAMBOOT and all your files on the root partition will be loaded to a tmpfs

Results:
Test setup:
*Kernel : Linux 2.6.38-8-generic (i686)
*Compiled : #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011
*Distribution : Ubuntu 11.04
*no graphics driver
*Desktop HP 8100E
*Core i7 860
*4GB Memory 2 Modules (DDR3)
*WDVeliciraptor 10k rpm 160GB 

转:Linux - Load your root partition to RAM and boot it

标签:

原文地址:http://www.cnblogs.com/yanan-huang/p/4511832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!