diff options
Diffstat (limited to 'meta/recipes-core/initrdscripts')
| -rw-r--r-- | meta/recipes-core/initrdscripts/files/init-install-efi.sh | 51 |
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 | ||
| 105 | echo "Creating boot partition on $bootfs" | 105 | echo "Creating boot partition on $bootfs" |
| 106 | parted /dev/${device} mkpart primary 0% $boot_size | 106 | parted /dev/${device} mkpart primary 0% $boot_size |
| 107 | parted /dev/${device} set 1 boot on | ||
| 107 | 108 | ||
| 108 | echo "Creating rootfs partition on $rootfs" | 109 | echo "Creating rootfs partition on $rootfs" |
| 109 | parted /dev/${device} mkpart primary $rootfs_start $rootfs_end | 110 | parted /dev/${device} mkpart primary $rootfs_start $rootfs_end |
| @@ -149,23 +150,41 @@ mount $bootfs /ssd | |||
| 149 | 150 | ||
| 150 | EFIDIR="/ssd/EFI/BOOT" | 151 | EFIDIR="/ssd/EFI/BOOT" |
| 151 | mkdir -p $EFIDIR | 152 | mkdir -p $EFIDIR |
| 152 | GRUBCFG="$EFIDIR/grub.cfg" | ||
| 153 | |||
| 154 | cp /media/$1/vmlinuz /ssd | 153 | cp /media/$1/vmlinuz /ssd |
| 155 | # Copy the efi loader and config (booti*.efi and grub.cfg) | 154 | # Copy the efi loader |
| 156 | cp /media/$1/EFI/BOOT/* $EFIDIR | 155 | cp /media/$1/EFI/BOOT/*.efi $EFIDIR |
| 157 | 156 | ||
| 158 | # Update grub config for the installed image | 157 | if [ -f /media/$1/EFI/BOOT/grub.cfg ]; then |
| 159 | # Delete the install entry | 158 | GRUBCFG="$EFIDIR/grub.cfg" |
| 160 | sed -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 |
| 162 | sed -i "/initrd /d" $GRUBCFG | 161 | # Delete the install entry |
| 163 | # Delete any LABEL= strings | 162 | sed -i "/menuentry 'install'/,/^}/d" $GRUBCFG |
| 164 | sed -i "s/ LABEL=[^ ]*/ /" $GRUBCFG | 163 | # Delete the initrd lines |
| 165 | # Delete any root= strings | 164 | sed -i "/initrd /d" $GRUBCFG |
| 166 | sed -i "s/ root=[^ ]*/ /" $GRUBCFG | 165 | # Delete any LABEL= strings |
| 167 | # Add the root= and other standard boot options | 166 | sed -i "s/ LABEL=[^ ]*/ /" $GRUBCFG |
| 168 | sed -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 | ||
| 171 | fi | ||
| 172 | |||
| 173 | if [ -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 | ||
| 187 | fi | ||
| 169 | 188 | ||
| 170 | umount /ssd | 189 | umount /ssd |
| 171 | sync | 190 | sync |
