summaryrefslogtreecommitdiff
path: root/libre/syslinux/syslinux-install_update
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2013-07-12 22:53:11 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2013-07-12 22:53:11 -0300
commite14736ca7ac051726b587d8fdb8368be502a9109 (patch)
tree6a40b3b2de9bf45e8f31ba5fd45ee8f2615bd4ae /libre/syslinux/syslinux-install_update
parente6e169990bdfc35fb6151f148510bf3f0da1dc1e (diff)
parent360a407f262ac47087ff29718465fbfc7765cb73 (diff)
Merge branch 'master' of ssh://gparabola/srv/git/abslibre
Diffstat (limited to 'libre/syslinux/syslinux-install_update')
-rw-r--r--libre/syslinux/syslinux-install_update30
1 files changed, 9 insertions, 21 deletions
diff --git a/libre/syslinux/syslinux-install_update b/libre/syslinux/syslinux-install_update
index 6d52f7703..34fe8e916 100644
--- a/libre/syslinux/syslinux-install_update
+++ b/libre/syslinux/syslinux-install_update
@@ -30,8 +30,8 @@ libpath="/usr/lib/syslinux"
bootpath="/boot/syslinux"
extlinux="/usr/bin/extlinux"
-core_modules=(ldlinux.c32)
autoupdate_file=/boot/syslinux/SYSLINUX_AUTOUPDATE
+com32_files=(menu.c32 vesamenu.c32 chain.c32 hdt.c32 reboot.c32 poweroff.com)
pciids_file=/usr/share/hwdata/pci.ids
## Helper functions ##
@@ -294,10 +294,9 @@ install_mbr() {
}
_install() {
- # Copy all com32 files to /boot
- for file in "${libpath}"/*.c32; do
- file=${file##*/}
- # Symlink files if /boot resides on the same partition as root
+ # Copy files to /boot
+ for file in "${com32_files[@]}"; do
+ # Symlink files even if links exist
if [[ "$boot" = root ]]; then
ln -s "${libpath#$CHROOT}/$file" "$bootpath/$file" &> /dev/null
elif [[ "$boot" = boot ]]; then
@@ -305,8 +304,8 @@ _install() {
fi
done
- # Copy / Symlink pci.ids if pci.ids exists on the FS
- if [[ -f $pciids_file ]]; then
+ # Copy / Symlink pci.ids if we copy the com32 module and if pci.ids exists in the FS
+ if check_is_in "hdt.c32" "${com32_files[@]}" && [[ -f $pciids_file ]]; then
if [[ "$boot" = root ]]; then
ln -s "$pciids_file" "$bootpath/pci.ids" &> /dev/null
elif [[ "$boot" = boot ]]; then
@@ -332,10 +331,10 @@ _install() {
}
update() {
- # Update c32 files in /boot, if /boot is not on same fs
+ # Update any com and c32 files in /boot
if [[ "$boot" = boot ]]; then
- for file in "$bootpath"/*.{c32}; do
- file=${file##*/}
+ for file in "$bootpath"/*.{c32,com}; do
+ file=$(basename "$file")
cp "$libpath/$file" "$bootpath/$file" &> /dev/null
done
if [[ -f "$bootpath/pci.ids" ]]; then
@@ -343,17 +342,6 @@ update() {
fi
fi
- # Ensure core modules exist and if not install them
- for file in "${core_modules[@]}"; do
- if [[ ! -f $bootpath/$file ]]; then
- if [[ "$boot" = root ]]; then
- ln -s "${libpath#$CHROOT}/$file" "$bootpath/$file" &> /dev/null
- elif [[ "$boot" = boot ]]; then
- cp "$libpath/$file" "$bootpath/$file"
- fi
- fi
- done
-
if device_is_raid $bootpart; then
echo "Detected RAID on /boot - installing Syslinux with --raid"
"$extlinux" --update "$bootpath" -r &> /dev/null