Actions
Bug #3877
closedfast reboot does not work with extended partition
Start date:
2013-07-08
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
Description
When the system is installed in an extended partition, the fast reboot does not work:
# grep findroot /rpool/boot/grub/menu.lst | head -1 findroot (pool_rpool,4,a) # dtrace -wq -n 'pid$target:a.out:parse_fastboot_args:return {exit(0)} ' -c "reboot -f" reboot: Failed to process GRUB menu entry for fast reboot. Invalid format for findroot reboot: Falling back to regular reboot. #
There are two problems in libgrubmgmt:
First, the findroot() is failing here:
397 ++pos; 398 if (!IS_PRTNUM_VALID(barg->gb_prtnum = pos[0] - '0')) 399 return (EG_FINDROOTFMT);
Second, the get_sol_prtnum() is failing, because it is processing only primary partitions:
105 for (i = 0; i < FD_NUMPART; ++i) { 106 if (ipart[i].systid == SUNIXOS || ipart[i].systid == SUNIXOS2) 107 return (i); 108 } 109 return (PRTNUM_INVALID);
Updated by Marcel Telka almost 9 years ago
- Status changed from New to In Progress
Updated by Igor Pashev almost 9 years ago
Parsing of GRUB1 menu looks like ultimate crap.
Long term solution is to keep kernel command line inside the kernel, like linux does:
# cat /proc/cmdline root=/dev/ram0 real_root=LABEL=root vga=773
Updated by Rich Lowe almost 9 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
- Tags deleted (
needs-triage)
Resolved in 01f9868a
Also, we don't need the kernel command line of this boot, because:
1) it might be another BE we're booting
2) the kernel command line may have been edited for this boot, and shouldn't propagate.
We do have the existing kernel command line accessible, not using it is intentional (ugly as hell, but intentional).
Actions