記憶體上的linux

suzhouclark發表於2010-03-13
http://blog.linux.org.tw/~jserv/archives/001954.html[@more@]記憶體的速度大家都知道,在記憶體上執行的系統不僅速度快,還可以脫離儲存介質,例如光碟啟動時,可以把光碟拿出來; u盤啟動時,則可以拔下u盤。當然,如果執行的是隻讀的檔案系統,要支援儲存資料的話,就需要儲存介質了,可以把資料儲存到硬碟/u盤上。

經過摸索,有2個辦法可以達到目的 :

1 是把整個系統做成initrd. initrd本來就是小檔案系統
用cpio把整個系統做成initrd,系統只要2個檔案就可以啟動了,一個核心vmlinuz,二是initrd.gz。
普通的initrd的主要用途是用來載入一些驅動,並找到真實的檔案系統,最後切換根,起到一箇中介的作用。而這裡的initrd則不切換根了,直接執行/sbin/init。
發行版SliTaz, pudlinux也有一個版本xpud 就是這種方式。
但是initrd太大的話,loader(grub/syslinux)載入要花很長時間,還有個問題就是cpio不是裝置,儲存資料很麻煩,反正我沒想到辦法。 ( 那位高手指點指點吧。

2 是在initrd中使用tmpfs技術把壓縮的檔案系統複製到記憶體中執行。
tmpfs 是一個檔案系統,而它又是使用RAM,可以很好解決在記憶體中執行,而又支援儲存資料。
看下面幾行指令碼就可以大概瞭解:
程式碼:
mkdir /store
mount -t tmpfs -o size=200M none /store
mkdir /store/iso
cp -a /iso_dir/*.iso /store/iso
/sbin/losetup /dev/loop6 /store/iso/*.iso
==============================

拿 RAM 當硬碟來用(RAM Disk)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9697/viewspace-1031802/,如需轉載,請註明出處,否則將追究法律責任。

相關文章