Bugzilla – Bug 114429
after installation on a virgin thinkpad T43, "no operating system"
Last modified: 2005-09-06 13:55:06 UTC
I installed on a "virgin" T43 and after the first part of the installation finished, i got "no operating system" after reboot.
But at least i can now again recover the machine via the blue "Access IBM" button, i just can not boot windows or linux ;-)
Alright, can you please attach y2logs, if you can get them via the rescue system? I guess something went wrong with the grub installation...
Created attachment 48386 [details] YaST2.tar.bz2 I just installed SUSE Linux 10.0 beta4 on my T41p and ran into the same problem.
How about this: y2log:2005-08-31 20:56:35 <3> linux(6960) [bash] ShellCommand.cc(shellcommand):78 sh: /usr/sbin/fix_chs: Keine Berechtigung (translates to: no permission). Is this really intentional: master-boot-code.spec:%attr(600,root,root) /usr/sbin/fix_chs
Alright, this really seems to be a duplicate of bug #103031. *** This bug has been marked as a duplicate of 103031 ***
this is not a duplicate of bug #103031 Torsten came around with FixCHS and it reported that nothing was wrong. The we installed an LBA-capable MBR and now it boots - but you can no longer boot the rescue partition. Analysis: - The original IBM MBR can boot rescue, but has no LBA support => after installing grub into hda3 (>12GB from start of disk), it no longer boots - The LBA capable "generic MBR" can boot grub, but not the rescue system. Choose your poison. IBM needs to fix their MBR.
This is very unfortunate. We don't have any chance of implementing a hack with chainloader to use the IBM MBR for booting the rescue stuff? Actually I'm curious who we managed to not break the rescue partition with the NOFOST Patch CD. I'll have to look into that as soon as I'm back in Nuremberg...
Torsten, what do you propose?
ad 6: It is not 'just a MBR' IBM puts a quite complex bootmanager there - that's why the rescue stuff stops working when you install grub into the MBR. IIRC that boot loader saves the original MBR (the one before it got installed - probably some XP MBR then) and runs it to boot the system. Maybe that one can't deal with lba.
First, minor corrections to comment #6: Somehow IBM's MBR is LBA-capable, but uses this only for Windoze partitions of appropriate types. The BIOS is LBA capable, for what I did was give Seife an MBR that had CHS disabled, and forced LBA use. "Our" default MBR remains to be tested. Conclusion: the pre-installed MBR is not smart enough to chainload Linux beyond the 1024 Cylinder boundary. So far, so bad. Either IBM replaces this MBR with a working one, or we do it. In the latter case their "Blue Button" will cease to work. So Andreas, the decision is up to you: will we recommend customers to kill the blue button, or point fingers at IBM ? Note that this is an IBM Laptop, running an IBM BIOS, executing first an IBM MBR. ==> there's absolutely nothing for me to fix here, this is a pure documentation issue.
FWIW: i have a image of the machine before installing anything (even before booting windows for the first time) which i can use to restore the machine to its original state (or to fetch the original MBR from)
No, the mbr doesn't boot anything itself. It stores a copy of the real one for that. We could of course put grub into that copy but I feel that's not just the kind of thing to do 2 days before GM.
Created attachment 48506 [details] perl script to install an grub mbr Usage example: tp_mbr /dev/sda This script writes a normal grub mbr into the place where the TP boot loader stores the mbr. Run after yast installs grub into a partition (before works too, actually). Though it has some checks itself, run only on TPs to be safe (yast has a check for them already). If we're actually going to use it: the script logs errors to stderr - please make them appear in yast logs somehow. Exit code: 0 = ok, != 0 failed.
Thanks Steffen. Thorsten, Jiri, what do you think of this?
OK, also - install GRUB normally to bootsector of boot partition - run this script I think it sounds fine (even if we don't have too much time to test it). Andreas, do you want me to do it?
Go ahead.
Don't include this script yet (though it works). That isn't a grub MBR. (grub doesn't provide a normal MBR - Torsten?). I just picked up what was on my machine here at work. I'm just trying to find an open-source MBR (that works). Torsten - any ideas?
Created attachment 48582 [details] script with lilo mbr The one from lilo seems to work so far.
What's the copyright? We're currently using BSD there, and Jiri is very picky about it. I'm working on an update from upstream, but don't dare to touch it now. Should be there in time for SLES10.
Oh, and don't forget to copy over the partition table, _after_ FixCHS was run!
I haven't looked at the one from comment 18 so far. My script doesn't touch the partition table at all.
Created attachment 48596 [details] hopefully final version using mbr from master-boot-code, the one from lilo is not fault tolerant enough
nothing I can do
OK, Steffen, Torsten, Andreas, I couldn't find any clear conclusion what should be done and in which casese. Could some of you, please, summarize it? Torsten, what does comment #21 mean? FixCHS breaks partition table?
Jiri, install grub into the partition as usual and then run the script from comment 23.
Thanks, Steffen. One more question: How about the license? Can I put it into yast2-bootloader (GPL), or master-boot-core (BSD)?
I'd like it as GPL.
Comment #21 was directed at Steffen, and turned out to be unnecessary. Jiri, it's totally valid to have BSD and GPL programs live on the same disk. As is it to have them in one package.
Torsten, I'm not sure, I had to split master-boot-code off yast2-bootloader just because of licenses...
Oh god. I can change the script to read the mbr externally. But I don't see master-boot-code in our inst-sys.
master-boot-code is not in inst-sys, because it is used from chroot environment just before reboot. The same for the attached script (but as it will be in yast2-bootloader, it will be also in inst-sys, although it won't be needed).
Ok, looked at the license again. And honestly I don't see a problem with writing the mbr from a gpl'ed script. Jürgen, what do you think?
master-boot-code was split from yast2-bootloader because of bug 61406. master-boot-code is tainted by a 4-clause BSD-license containing an advertising clause, which is incompatible with GPL. Two files are affected: asm.h is Copyright UCB. UCB gave an explicit annoucement that the Advertising clause is void. (No issue here.) FixCHS.c is copyright Suse, author Torsten Duwe. Torsten has the power to relicense his code. This also would have been the better solution for bug 61406. If he does so, this issue is settled.
The script (and routines calling it) are now in SVN, in yast2-bootlaoder. Testing package build and submitting to STABLE.