usbinstall: support for installation without using bootusb archive
This commit is contained in:
parent
bd01ee2e19
commit
e85262b5dd
@ -159,10 +159,6 @@ def go_on():
|
|||||||
cloud_hide()
|
cloud_hide()
|
||||||
# Step n°1 to n°2
|
# Step n°1 to n°2
|
||||||
if step == 1:
|
if step == 1:
|
||||||
if path_cpio == "":
|
|
||||||
msg_warn(_("A file .cpio is required"))
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
step += 1
|
step += 1
|
||||||
step2()
|
step2()
|
||||||
# Step n°2 to n°3
|
# Step n°2 to n°3
|
||||||
|
@ -173,35 +173,30 @@ else
|
|||||||
errorAndExit $"Error(Arg 1): \"$1\" isn't a block device" 1
|
errorAndExit $"Error(Arg 1): \"$1\" isn't a block device" 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if Arg 2 is valid
|
# Check if Arg 2 is valid (it can be null)
|
||||||
if [ -f "$2" ]; then # Check if is a file
|
if ["$2" ]; then
|
||||||
if [ -r "$2" ]; then # Chek is is readable
|
if [ -r "$2" ]; then # Chek is is readable
|
||||||
|
# Check if Arg 2 is a gz file
|
||||||
|
if [ "${2##*.}" != "gz" ]; then
|
||||||
|
errorAndExit "Error(Arg 2): you must chose a cpio.gz file" 1
|
||||||
|
fi
|
||||||
export SELECT_BOOT=$2
|
export SELECT_BOOT=$2
|
||||||
else
|
else
|
||||||
errorAndExit $"Error(Arg 2): \"$2\" is not readable" 1
|
errorAndExit $"Error(Arg 2): \"$2\" is not readable" 1
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
errorAndExit $"Error(Arg 2): \"$2\" isn't a regular file" 1
|
|
||||||
fi
|
|
||||||
# Check if Arg 2 is a gz file
|
|
||||||
if [ "${2##*.}" != "gz" ]; then
|
|
||||||
errorAndExit "Error(Arg 2): you must chose a cpio.gz file" 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if Arg 3 is valid
|
# Check if Arg 3 is valid
|
||||||
if [ -f "$3" ]; then # Check if is a file
|
if [ -r "$3" ]; then # Chek is is readable
|
||||||
if [ -r "$3" ]; then # Chek is is readable
|
# Check if Arg 3 is an iso file
|
||||||
SELECT_ISO=`readlink -f $3`
|
if [ "${3##*.}" != "iso" ]; then
|
||||||
else
|
|
||||||
errorAndExit "Error(Arg 3): \"$3\" is not readable" 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
errorAndExit "Error(Arg 3): \"$3\" isn't a regular file" 1
|
|
||||||
fi
|
|
||||||
# Check if Arg 3 is an iso file
|
|
||||||
if [ "${3##*.}" != "iso" ]; then
|
|
||||||
errorAndExit "Error(Arg 3): you must chose a iso file" 1
|
errorAndExit "Error(Arg 3): you must chose a iso file" 1
|
||||||
|
fi
|
||||||
|
SELECT_ISO=`readlink -f $3`
|
||||||
|
else
|
||||||
|
errorAndExit "Error(Arg 3): \"$3\" is not readable" 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#################################(INITIAL-CHECK)#####################################
|
#################################(INITIAL-CHECK)#####################################
|
||||||
|
|
||||||
|
|
||||||
@ -306,20 +301,7 @@ if [ ! -d "$MOUNTDIR" ]; then
|
|||||||
errorAndExit $"Error: unable to found usb mount path"
|
errorAndExit $"Error: unable to found usb mount path"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set_status $"Extracting bootusb archive..."
|
|
||||||
echo $"Extracting bootusb archive..."
|
|
||||||
pushd $MOUNTDIR >/dev/null
|
pushd $MOUNTDIR >/dev/null
|
||||||
sudo chmod 777 ./
|
|
||||||
gunzip -c $SELECT_BOOT | cpio -i
|
|
||||||
if [ ! -d "./boot" ]; then
|
|
||||||
errorAndExit $"Error: Invalid bootusb archive"
|
|
||||||
fi
|
|
||||||
set_pbar 38
|
|
||||||
|
|
||||||
set_status $"Writing bootloader..."
|
|
||||||
echo $"Writing bootloader..."
|
|
||||||
sudo extlinux --install boot
|
|
||||||
set_pbar 45
|
|
||||||
|
|
||||||
set_status $"Copying ISO..."
|
set_status $"Copying ISO..."
|
||||||
echo $"Copying ISO..."
|
echo $"Copying ISO..."
|
||||||
@ -333,13 +315,46 @@ ps $CPPID >/dev/null
|
|||||||
while [ $? -eq 0 ]; do
|
while [ $? -eq 0 ]; do
|
||||||
if [ -e $DEST_FILE ]; then
|
if [ -e $DEST_FILE ]; then
|
||||||
DEST_SIZE=$(stat -c %s $DEST_FILE)
|
DEST_SIZE=$(stat -c %s $DEST_FILE)
|
||||||
percentuale=$((45 + ( 50 * $DEST_SIZE ) / $ORIG_SIZE ))
|
percentuale=$((30 + ( 50 * $DEST_SIZE ) / $ORIG_SIZE ))
|
||||||
set_pbar $percentuale
|
set_pbar $percentuale
|
||||||
fi
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
ps $CPPID >/dev/null
|
ps $CPPID >/dev/null
|
||||||
done
|
done
|
||||||
ln -fs `basename $SELECT_ISO` ./openmamba-live.iso
|
ln -fs `basename $SELECT_ISO` ./openmamba-live.iso
|
||||||
|
|
||||||
|
set_status $"Extracting bootusb archive..."
|
||||||
|
echo $"Extracting bootusb archive..."
|
||||||
|
sudo chmod 777 ./
|
||||||
|
if [ "$SELECT_BOOT" ]; then
|
||||||
|
gunzip -c $SELECT_BOOT | cpio -i
|
||||||
|
if [ ! -d "./boot" ]; then
|
||||||
|
errorAndExit $"Error: Invalid bootusb archive"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ISOMOUNTDIR=`mktemp -d --suffix=.usbinstall`
|
||||||
|
mount -o loop $SELECT_ISO $ISOMOUNTDIR || {
|
||||||
|
errorAndExit $"Error: unable to mount ISO image"
|
||||||
|
}
|
||||||
|
mkdir boot
|
||||||
|
cp $ISOMOUNTDIR/boot/{initrd*,vmlinuz*} boot/
|
||||||
|
cp $ISOMOUNTDIR/boot/isolinux/* boot/
|
||||||
|
mv boot/isolinux.cfg boot/extlinux.conf
|
||||||
|
sed -i "s|root=[^[:space:]]*|root=live:/openmamba_live/openmamba-live.iso|" boot/extlinux.conf
|
||||||
|
cp /usr/share/syslinux/{libcom32,libutil,vesamenu}.c32 boot/ || {
|
||||||
|
errorAndExit $"Error: can't copy some files to /boot directory"
|
||||||
|
}
|
||||||
|
rm -f boot/isolinux*
|
||||||
|
umount $ISOMOUNTDIR
|
||||||
|
rmdir $ISOMOUNTDIR
|
||||||
|
fi
|
||||||
|
set_pbar 85
|
||||||
|
|
||||||
|
set_status $"Writing bootloader..."
|
||||||
|
echo $"Writing bootloader..."
|
||||||
|
sudo extlinux --install boot
|
||||||
|
set_pbar 90
|
||||||
|
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
sync
|
sync
|
||||||
set_pbar 95
|
set_pbar 95
|
||||||
|
Loading…
Reference in New Issue
Block a user