|
发表于 2008-11-19 14:52:59
|
显示全部楼层
不知道为何,我看整个/var/lib/pacman的大小才2m多,在虚拟盘里面是22m,但是必须大于70m才行。
还有pacman-cage有bug,比如失败,会默认把pacman.bak还原到/var/lib/pacman文件夹下去,然后多运行失败几次,就会又n层目录。
所以建议使用这个命令之前备份一下/var/lib/pacman这个目录比较好。万一操作失误,就等着哭吧。
修改启动脚本,启动的时候拷贝挂载到内存,关机的时候复制到磁盘。看看有什么需要修改的。貌似没有问题吧
[color="Red"]不推荐使用。。。不稳定
[php]#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
case "$1" in
start)
# Check and mount pacman database
stat_busy "Mounting the pacman database"
/sbin/e2fsck -p /var/lib/pacman.db >/dev/null
if [ $? -gt 1 ]; then
stat_fail
echo
echo "WARNING: PACMAN DATABASE FILESYSTEM CHECK FAILED, NOT MOUNTED"
echo
else # <--------------------这里开始
if [ ! -d /dev/shm ]; then
echo "NOTE: Faild to use memdisk"
mount -o loop -t ext2 /var/lib/pacman.db /var/lib/pacman
else
cp /var/lib/pacman.db /dev/shm/pacman.db
mount -o loop -t ext2 /dev/shm/pacman.db /var/lib/pacman
fi #<--------------------这里结束
if [ $? -gt 0 ]; then
stat_fail
echo
echo "WARNING: MOUNTING PACMAN DATABASE FAILED"
echo
else
stat_done
add_daemon pacmandb
fi
fi
;;
stop)
stat_busy "Unmounting the pacman database"
umount /var/lib/pacman >/dev/null 2>&1
####need contribuild#### #<-------------还有这里开始,怎么样能判断这个文件是否被修改过呢,否则只好每次关机复制一次了
#if [ -e /dev/shm/pacmandb ];then
cp /dev/shm/pacman.db /var/lib/pacman.db
#fi
########################
# < ----------------这里结束
if [ $? -ne 0 ]; then
stat_fail
else
stat_done
rm_daemon pacmandb
fi
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac[/php] |
|