summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/initrdscripts/files/init-install-efi.sh51
1 files changed, 35 insertions, 16 deletions
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index 9846637316..ed3221b0a6 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
@@ -104,6 +104,7 @@ parted /dev/${device} mklabel gpt
104 104
105echo "Creating boot partition on $bootfs" 105echo "Creating boot partition on $bootfs"
106parted /dev/${device} mkpart primary 0% $boot_size 106parted /dev/${device} mkpart primary 0% $boot_size
107parted /dev/${device} set 1 boot on
107 108
108echo "Creating rootfs partition on $rootfs" 109echo "Creating rootfs partition on $rootfs"
109parted /dev/${device} mkpart primary $rootfs_start $rootfs_end 110parted /dev/${device} mkpart primary $rootfs_start $rootfs_end
@@ -149,23 +150,41 @@ mount $bootfs /ssd
149 150
150EFIDIR="/ssd/EFI/BOOT" 151EFIDIR="/ssd/EFI/BOOT"
151mkdir -p $EFIDIR 152mkdir -p $EFIDIR
152GRUBCFG="$EFIDIR/grub.cfg"
153
154cp /media/$1/vmlinuz /ssd 153cp /media/$1/vmlinuz /ssd
155# Copy the efi loader and config (booti*.efi and grub.cfg) 154# Copy the efi loader
156cp /media/$1/EFI/BOOT/* $EFIDIR 155cp /media/$1/EFI/BOOT/*.efi $EFIDIR
157 156
158# Update grub config for the installed image 157if [ -f /media/$1/EFI/BOOT/grub.cfg ]; then
159# Delete the install entry 158 GRUBCFG="$EFIDIR/grub.cfg"
160sed -i "/menuentry 'install'/,/^}/d" $GRUBCFG 159 cp /media/$1/EFI/BOOT/grub.cfg $GRUBCFG
161# Delete the initrd lines 160 # Update grub config for the installed image
162sed -i "/initrd /d" $GRUBCFG 161 # Delete the install entry
163# Delete any LABEL= strings 162 sed -i "/menuentry 'install'/,/^}/d" $GRUBCFG
164sed -i "s/ LABEL=[^ ]*/ /" $GRUBCFG 163 # Delete the initrd lines
165# Delete any root= strings 164 sed -i "/initrd /d" $GRUBCFG
166sed -i "s/ root=[^ ]*/ /" $GRUBCFG 165 # Delete any LABEL= strings
167# Add the root= and other standard boot options 166 sed -i "s/ LABEL=[^ ]*/ /" $GRUBCFG
168sed -i "s@linux /vmlinuz *@linux /vmlinuz root=$rootfs rw $rootwait quiet @" $GRUBCFG 167 # Delete any root= strings
168 sed -i "s/ root=[^ ]*/ /" $GRUBCFG
169 # Add the root= and other standard boot options
170 sed -i "s@linux /vmlinuz *@linux /vmlinuz root=$rootfs rw $rootwait quiet @" $GRUBCFG
171fi
172
173if [ -d /media/$1/loader ]; then
174 GUMMIBOOT_CFGS="/ssd/loader/entries/*.conf"
175 # copy config files for gummiboot
176 cp -dr /media/$1/loader /ssd
177 # delete the install entry
178 rm -f /ssd/loader/entries/install.conf
179 # delete the initrd lines
180 sed -i "/initrd /d" $GUMMIBOOT_CFGS
181 # delete any LABEL= strings
182 sed -i "s/ LABEL=[^ ]*/ /" $GUMMIBOOT_CFGS
183 # delete any root= strings
184 sed -i "s/ root=[^ ]*/ /" $GUMMIBOOT_CFGS
185 # add the root= and other standard boot options
186 sed -i "s@options *@options root=$rootfs rw $rootwait quiet @" $GUMMIBOOT_CFGS
187fi
169 188
170umount /ssd 189umount /ssd
171sync 190sync