Hi, On 05/28/09 00:29, Jan Damborsky wrote: > Hi Shidokht, > > > Shidokht Yadegari wrote: >> On 05/27/09 10:36, Jan Damborsky wrote: >>> Hi Pallavi, >>> >>> could you please add release notes for bugs 9026 >>> and 6843138 to OpenSolaris 2009.06 release notes ? >>> >>> Shidokht, could you please take a look to verify if >>> the information captured below is correct and provide >>> workaround for 6843138 if one exists ? >>> >> ... >>> >>> ================================================================================== >>> >>> >>> bugid: 6843138 >>> synopsis: can not boot off a 2.2TB and zfs root >>> >>> Platforms affected: >>> x86 >>> >>> Description: >>> Due to the limitation in current implementation of GRUB which >>> OpenSolaris uses as boot >>> loader on x86 platform, OpenSolaris operating system can't be booted >>> from disk which >>> capacity exceeds 2^32 sectors or 2TB (assuming that sector size is >>> 512 bytes). >> Hi, >> >> Since the problem depends on whether the needed data for booting >> falls in the region >> defined by the lower 32bits of capacity, I'd suggest rewording >> "can't be booted" >> to "may not be booted" > > ok. > >> >> >> I don't have a great workaround here. For a warm reboot, if we do a >> modunload -i 0 >> and then do reboot, fastreboot would have a chance in rebooting the >> system bypassing >> grub if all loaded drivers support quiesce. > > If my understanding of the problem is correct, if we make sure that slice > which root pool resides in doesn't exceed 2TB boundary, GRUB will be > always able to locate all necessary pieces even on >2TB disk ? > Not really. GRUB will try to make sure the requested I/O to the disk is not going beyond total sectors of the disk. To calculate total sectors, it issues an int 13 fn 48 to BIOS to get the capacity. There are two problems here. One is uses ulong for total_sectors and only takes the lower 32bit of the value reported from BIOS. For example if the capacity reported is 0x100f00000, it sets total sectors to 0xf00000. If root is within this first 0xf00000 then we are ok and can boot.
The second problem is that even if we fix it BIOSes do not always report the correct capacity at least for >2TB that I have seen. I am removing the check against total sectors for I/O in grub. > Thinking about this more, I am a little bit confused. I was assuming > that it is not possible to utilize space after 2TB, as fdisk > partition table also uses 32 bits for defining sector partition geometry, > so it would be always assured that all necessary data are stored > within first 2TB ? > Yes, we only utilize at most the first 2TB currently for boot disk. But the check in grub is against capacity. Please let me know if I can clarify further. --shidokht > Thank you, > Jan >
