分页: 2 / 2

发表于 : 2006-07-08 11:54
gnix_oag
改一下:即 ext2|ext3|reiserfs|jfs|xfs|minix 分区上有 /ubuntu_rw 文件夹就用它来保存
或者有根目上有 ubuntu.img 文件 就用它来保存

代码: 全选

find_cow_device() {
    for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
        for dev in $(subdevices "${sysblock}"); do
            devname=$(sys2dev "${dev}")

                    case $(get_fstype "${devname}") in    
                        ext2|ext3|reiserfs|jfs|xfs|minix)
                            modprobe $(get_fstype "${devname}")
                            mount -t $(get_fstype "${devname}") -o rw "${devname}" /cow_tmp || continue
                             if [ -e /cow_tmp/ubuntu_rw ] ; then
                                 mount -o bind /cow_tmp /cow
                                 return
                             elif [ -f /cow_tmp/ubuntu.img ]; then
                                 modprobe loop
                                 mount -t $(get_fstype /cow_tmp/ubuntu.img ) -o loop /cow_tmp/ubuntu.img /cow
                                 return 
                             else
                                 umount /cow_tmp
                             fi
                                                                         ;;
                         vfat|ntfs)
                             modprobe $(get_fstype "${devname}")
                             mount -t $(get_fstype "${devname}") -o utf8 "${devname}" /cow_tmp || continue
                             if [ -f /cow_tmp/ubuntu.img ]; then
                                 modprobe loop
                                 mount -t $(get_fstype /cow_tmp/ubuntu.img ) -o loop /cow_tmp/ubuntu.img /cow
                                 return 
                             eles
                                 umount /cow_tmp
                             fi
                                                                  ;;
                                                               *)
                                                                 ;;
                    esac
        done
    done
    return 1    
}

setup_unionfs() {
	backdev="$1"
	rootmnt="$2"
        modprobe -Qb unionfs
        mkdir -p /cow

        if grep -q use_hd_unionfs /proc/cmdline; then
				mkdir -p /cow_tmp
            i=0
            # We love udev and the kernel!
            while [ "$i" -lt 10 ]; do
                cowdevice=$(find_cow_device) 
                sleep 1
                i=$(( $i + 1 ))
            done
        else
            mount -t tmpfs tmpfs /cow
        fi

	mkdir -p /rofs
    if [ "$(get_fstype $backdev)" = "unknown" ]; then
        panic "Unknown file system type on $backdev"
    fi
	mount -t $(get_fstype "$backdev") -o ro "$backdev" /rofs || panic "Can not mount $backdev on /rofs"

	mount -t unionfs -o dirs=/cow=rw:/rofs=ro unionfs "$rootmnt"
        if grep -q show-cow /proc/cmdline; then
            mkdir -p "$rootmnt/cow"
            mount -o bind /cow "$rootmnt/cow"
        fi
        mkdir -p "$rootmnt/rofs"
        mount -o bind /rofs "$rootmnt/rofs"
}

发表于 : 2006-07-09 1:46
lvjinhua
gnix_oag 写了:在 mountroot() 的

setup_cow "$overlay_method" "$(get_backing_device $live_image)" "$rootmnt"
加上
cp -r /lib "$rootmnt/lib"

可以起动不同LiveCD上内核的 LiveCD
由于 initrd.gz 的 lib 目录中仅含有很少的一部分内核模块,当系统真正运行起来后它是不够的,因此简单的复制过去还是不通用。

发表于 : 2006-07-09 9:30
gnix_oag
我试了,理论上它是不够

但实际上是可以起动,

也许有些硬件可能不能用,

发表于 : 2006-10-25 10:32
chinson
请问amd64的可以用么?

发表于 : 2006-10-25 18:38
lvjinhua
应该是可以的,但没有试过,你试过后可以来汇报一下!
你只要改对应光盘中的脚本就可以了。

发表于 : 2007-03-31 0:08
qiuhuabb
失败两次后,用你的方法,第三次成功了.感谢!!前两次弄的都开不了机了.!!!
另外想问下,装好后,C;\下的ISO文件可以删除吗?BOOT文件夹呢?
要做的就是学习LINUX知识,让它开始上网,软件了...THANK YOU SO MUCH!!

发表于 : 2007-04-06 21:21
drivel
What's the default pass for Desktop livecd?