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
[email protected]
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel