2012-06-17 65 views
3

我有一個嵌入式設備,我需要將我的/ var和/ tmp放在ram中以減少驅動器(Compact Flash)上的寫入次數。我知道如何使用/ tmp來做到這一點,因爲當我重新啓動或關機時,我不必恢復任何東西。在啓動時掛載/ var on ramdisk - Bash腳本問題

但是/ var目錄有重要的東西。我一直在研究,我發現這一點,但它似乎並沒有工作。

下面是腳本:

# insert this on file 'rc.sys.init' 
# after the mount of the root file system 
# to create the /var on ramdisk 


echo "Create ramdisk........." 
#dd if=/dev/zero of=/dev/ram0 bs=1k count=16384 
mkfs.ext2 -j -m 0 -q -L ramdisk /dev/ram0 
if [ ! -d /mnt/ramdisk ]; then 
    mkdir -p /mnt/ramdisk 
fi 
mount /dev/ram0 /mnt/ramdisk 
if [ -L /var ]; then 
    tar -xf /vartmp.tar -C /mnt/ramdisk 
else 
    tar -C/-cf /vartmp.tar var 
    cp -a /var /mnt/ramdisk 
    rm -rf /var 
    ln -s /mnt/ramdisk/var /var 
fi 

# insert this into file 'halt' 
# to stop the ram disk properly on shutdown. 
# 

if [ -e /vartmp.tar ]; then 
    rm -f /vartmp.tar 
fi; 
tar -C /mnt/ramdisk -cf /vartmp.tar var 

是否有這個腳本的任何問題?如果沒有,我應該把他們包括在官方和終止腳本中?

回答

0

對於所有有同樣的問題,這樣,我已經解決了我的問題(種)

這兩個腳本我張貼是正確的,完成這項工作。你必須小心的是你把它們放在哪裏。

在Slackware中,第一個運行腳本是rc.S。起初我複製粘貼我的第一個劇本到那個中間。它絕對應該在那裏,而不是我放在哪裏。您必須查看腳本rc.S從/ var調用特定目錄或文件的位置。創建虛擬磁盤應該在這些行之前。

關機腳本應在rc.6腳本(關機腳本)

另外的底部加入我應該指出的是,雖然這改進了驅動器的壽命,它是一個小易失性和有時隨機重新啓動,所以要小心。

0

不錯的腳本......但在我看來,它是揮發性的,有幾個原因。首先,你告訴系統最大ramdisk大小...首先作爲內核參數..... linux/vmlinuz ramdisk_size=204800 ......然後在rc mke2fs -t ext2 /dev/ram1 204800 .....並且可能使用ram1而不是ram0 ... ....也可以使用腳本手動保存ramdisk內容到/var.....cp -a /mnt/ramdisk/var/. /var ........備份real/var到另一個目錄中tar壓縮,但引入tar壓縮以減少數據大小可能會引入延遲,延遲和不穩定性。在我看來,這是如此。

+1

嘗試與您的答案帖子結構。 –