Jonatan Liljedahl wrote:
> Lucas C. Villa Real wrote:
>> On 2/16/07, Jonatan Liljedahl <[EMAIL PROTECTED]> wrote:
>>> Found the right options to mkisofs in an old mail about USB drive
>>> support in 012... (all this seems very familiar! ;)
>>>
>>> Anyhow, the CD booted, but it stops with "Failed to add
>>> /Mount/SquashFS/Packages-List-Base into /Mount/TmpFS/Programs" and same
>>> thing for all other squashfs files, then the kernel panics when not
>>> finding init.
>>>
>>> Does the squashfs files need to be repacked with the updated squashfs tool?
>> Hmmm, it doesn't seem to be necessary here, as I can loopback mount
>> the original squashfs images with the updated kernel (2.6.20).
> 
> Ok, good.
> 
>> I've just checked the startGoboLinux script, and it does a call to unionctl:
>>
>> for i in /Mount/CD-ROM/Packages*.squashfs; do
>>     mount -o loop,ro -t squashfs $i /Mount/SquashFS/`basename $i .squashfs`
>>     unionctl /Mount/TmpFS/Programs --add --after /Mount/TmpFS/Programs \
>>              --mode ro /Mount/SquashFS/`basename $i .squashfs`
>> done
>>
>> The current UnionFS snapshot doesn't allow one to use dynamic branches
>> (we were using UnionFS 1.x, which is now freezed; the new development
>> is going into 2.x, which doesn't have all features commited yet). So,
>> in other words, you'll probably need to compile a new kernel with an
>> updated squashfs patch, keeping the old UnionFS patches.. :-(
> 
> So, do I understand it correctly that unionctl --add is the problem?
> Then can't I just change the startGoboLinux script to mount all
> squashfs's in one go?
> mount -t unionfs -o dirs=/Mount/SquashFS/Foo=ro:/Mount/SquashFS/Bar=ro:...
> 
> If I'm going to recompile the kernel, is the new unionfs patches
> included in the recipe so I can revert them and replace them with the
> unionfs patches from some old gobokernel tarball?

(forgot to attach script to last mail)

-- 
/Jonatan - http://kymatica.com
#!/bin/ash

/bin/mount -t proc  none /System/Kernel/Status
/bin/mount -t sysfs none /System/Kernel/Objects
/bin/mount -t tmpfs none /System/Kernel/Devices

echo "Generating /System/Kernel/Devices"
/bin/miniudev >/dev/null

echo "Mounting GoboLinux Install CD..."
/bin/mountGoboLinux 

echo "Preparing TmpFS RW Layer..."
mount -t tmpfs none /Mount/TmpFS
mkdir /Mount/TmpFS/Programs

echo "Initializing GoboLinux squashfs files..."
# Mounting 'GoboLinux-{rest,files}.squashfs' (still harcoded names)
mount -o loop,ro -t squashfs /Mount/CD-ROM/GoboLinux-rest.squashfs  
/Mount/SquashFS/Rest
mount -o loop,ro -t squashfs /Mount/CD-ROM/GoboLinux-files.squashfs 
/Mount/SquashFS/Files
# mount -t unionfs -o 
dirs=/Mount/TmpFS=rw:/Mount/SquashFS/Rest=ro:/Mount/SquashFS/Files=ro:/Mount/UnionFS=ro
 none /Mount/UnionFS

#
# Tricky block for /Depot, /Mount, /System and /Files
#
cd /Mount/SquashFS/Rest
for i in *
do
   [ -h $i ] && cp -a $i /Mount/TmpFS
done
cp -a Mount  /Mount/TmpFS
cp -a usr    /Mount/TmpFS
mkdir -p /Mount/TmpFS/Depot
mkdir -p /Mount/TmpFS/Files
mkdir -p /Mount/TmpFS/System
mount -t unionfs -o dirs=/Mount/TmpFS/System=rw:/Mount/SquashFS/Rest/System=ro 
none /Mount/TmpFS/System
mount -t unionfs -o dirs=/Mount/TmpFS/Files=rw:/Mount/SquashFS/Files/Files=ro 
none /Mount/TmpFS/Files

#
# Tricky block for /Programs
#
mkdir -p /Mount/TmpFS/Programs

# Mounting Packages*.squashfs files inside /Programs
for i in /Mount/CD-ROM/Packages*.squashfs; do
    mount -o loop,ro -t squashfs $i /Mount/SquashFS/`basename $i .squashfs`
done

DIRS="/Mount/TmpFS/Programs=rw"
DIRS+=":/Mount/SquashFS/Packages-List-Base=ro"
DIRS+=":/Mount/SquashFS/Packages-List-GoboLinuxTools-Stable=ro"
DIRS+=":/Mount/SquashFS/Packages-List-OpenOffice=ro"
DIRS+=":/Mount/SquashFS/Packages-List-XorgAndDependencies=ro"

mount -t unionfs -o dirs=$DIRS none /Mount/TmpFS/Programs

# Remove unneeded mounts
/bin/umount /System/Kernel/Devices
/bin/umount /System/Kernel/Objects
# /bin/umount /System/Kernel/Status

echo "Performing pivot_root..."
cd /Mount/TmpFS
# cd /Mount/UnionFS
/bin/pivot_root . Mount/.Pivot

# ensure that the inittab from LiveCD is used. this is later replaced
# by the StartLiveCD script from the LiveCD package.
ln -nfs /Programs/LiveCD/Settings/inittab /System/Settings/inittab

echo "Invoking init..."
exec /sbin/init
echo "Done."
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to