You are not logged in.
First, I'll describe what my system is doing, and then I'll explain how it got there.
As I mention in the subject, I have a ThinkPad x120e. It's got a Hitachi HTS723232A7A364 300GB hard disk. In the firmware boot device selection menu, it's identified as "HDD0". When I try to boot the laptop, I get the message, "Operating System Not Found". I'm reasonably sure (see below) that this is coming from the laptop's firmware and not from the bootloader.
I have the Arch install media on a USB stick, and here's the really interesting thing. When I boot the install media, I can chain to the bootloader on the hard drive using "Boot existing OS". However, chaining to HD0 just brings me back to the boot menu from the install media. (I.e. the USB stick is HD0.) But, when I chainload HD1, I see the Grub menu and I'm able to boot.
When the system is done booting, everything is fine, all of my mounts are OK. I.e., the hard drive is /dev/sda as I would expect. (Although if I boot Arch from the install media, sometimes the USB stick is /dev/sda instead, and the hard drive is /dev/sdb.)
All of this leads me to believe that, at some point between POST and trying to find a bootloader on the hard disk, the identity of the disk somehow changes to HD1 and the laptop can't find the disk it's supposed to boot from.
Here's where I'd like to solicit advice. Does anybody have any ideas about how I might get my system booting normally again? Booting from a USB stick isn't the end of the world, but using a boot disk makes me feel like it's the 1990s again.
Why I think "Operating System Not Found" is a BIOS message:
(1) I looked at a hex dump of the boot sector. There are terse error messages there, but not "Operating System Not Found". (You'll see I have Grub installed.)
The output of
dd if=/dev/sda bs=440 count=1 | xxd -is
0000000: eb63 908e d88e d0bc 007c 89e6 0657 8ec0 .c.......|...W..
0000010: fbfc bf00 06b9 0001 f3a5 ea1f 0600 0052 ...............R
0000020: 52b4 41bb aa55 31c9 30f6 f9cd 1372 1381 R.A..U1.0....r..
0000030: fb55 aa75 0dd1 e973 0966 c706 8d06 b442 .U.u...s.f.....B
0000040: eb15 5ab4 08cd 1383 e13f 510f b6c6 40f7 ..Z......?Q...@.
0000050: e152 5066 31c0 6699 e866 0080 0100 0000 .RPf1.f..f......
0000060: 0000 0000 fffa 9090 f6c2 8074 05f6 c270 ...........t...p
0000070: 7402 b280 ea79 7c00 0031 c08e d88e d0bc t....y|..1......
0000080: 0020 fba0 647c 3cff 7402 88c2 52be 807d . ..d|<.t...R..}
0000090: e817 01be 057c b441 bbaa 55cd 135a 5272 .....|.A..U..ZRr
00000a0: 3d81 fb55 aa75 3783 e101 7432 31c0 8944 =..U.u7...t21..D
00000b0: 0440 8844 ff89 4402 c704 1000 668b 1e5c .@.D..D.....f..\
00000c0: 7c66 895c 0866 8b1e 607c 6689 5c0c c744 |f.\.f..`|f.\..D
00000d0: 0600 70b4 42cd 1372 05bb 0070 eb76 b408 ..p.B..r...p.v..
00000e0: cd13 730d f6c2 800f 84d8 00be 8b7d e982 ..s..........}..
00000f0: 0066 0fb6 c688 64ff 4066 8944 040f b6d1 .f....d.@f.D....
0000100: c1e2 0288 e888 f440 8944 080f b6c2 c0e8 .......@.D......
0000110: 0266 8904 66a1 607c 6609 c075 4e66 a15c .f..f.`|f..uNf.\
0000120: 7c66 31d2 66f7 3488 d131 d266 f774 043b |f1.f.4..1.f.t.;
0000130: 4408 7d37 fec1 88c5 30c0 c1e8 0208 c188 D.}7....0.......
0000140: d05a 88c6 bb00 708e c331 dbb8 0102 cd13 .Z....p..1......
0000150: 721e 8cc3 601e b900 018e db31 f6bf 0080 r...`......1....
0000160: 8ec6 fcf3 a51f 61ff 265a 7cbe 867d eb03 ......a.&Z|..}..
0000170: be95 7de8 3400 be9a 7de8 2e00 cd18 ebfe ..}.4...}.......
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
0000190: 4469 736b 0052 6561 6400 2045 7272 6f72 Disk.Read. Error
00001a0: 0d0a 00bb 0100 b40e cd10 ac3c 0075 f4c3 ...........<.u..
00001b0: 0000 0000 0000 0000 ........(2) I googled the message, and I came up with lots of posts from people who'd hosed the bootloaders on their ThinkPads. However, I'm pretty sure the 440 bytes above should get me to more interesting failures to boot than "Operating System Not Found" and an unresponsive laptop.
I was happily running Arch, but I was getting tired of Grub and its (for my purposes) totally unnecessary level of complexity. So, fueled by unlimited belief in my ability to fix things and a bottle of Troeg's Perpetual, I decided to install syslinux:
syslinux-install_update -i -a -mThen I rebooted and got the error. I booted the install media, switched back to Grub, and still got the error. I'm happy to provide more details, but right now I've got to run.
Offline
Assuming you have only one hdd, I doubt the disk is changing identity between post and looking for the bootloader. However, to be sure, just switch to UUIDs or labels.
I agree the message is 99.9999% certain to be coming from the BIOS. I have seen it many times (though not for a while).
How did you reinstall grub? What commands did you issue? What results did you get?
I am assuming you are booting in bios mode. Could you confirm that?
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
I do have only the one HDD -- my reason for thinking that there's some kind of weird identity change going on is that I can chainload to the HDD as HD1, when it should (I believe) be identified as HD0 instead. I reinstalled grub as per the instructions on the wiki:
https://wiki.archlinux.org/index.php/Gr … ode_region
# modprobe dm-mod
# grub-install --recheck /dev/sdXI received no errors.
Since I had already installed grub, I didn't regenerate the configuration. I'm pretty sure that the grub installation is fine, since I'm able to chainload to grub after booting to the menu on the USB stick. It's just that bios doesn't seem to be looking at the disk when it tries to boot.
You're right that I'm in bios mode -- I'm in "legacy" mode, to be specific. There's also a "compatibility" mode that supports EFI and bios, and a UEFI mode that I think will only boot EFI. I've considered trying to switch to UEFI mode, install an EFI bootloader, and see if that fixes things, but that's a bit of a last resort. There's also a Windows 7 installation on the disk that I have to boot occasionally for work, and I'm nervous about doing anything that would render it unusable.
Could you clarify in which context you suggest using UUIDs? In the Grub config?
Offline
Grub and, possibly, fstab.
When you chainload, there is a second disk, though - the Arch install disk. So that could explain its being hd1 in that case. (In fact that seems quite likely.)
grub.cfg should use UUIDs by default, I think.
But I don't think any of that is the problem.
The bootloader is not installed correctly to the MBR. That doesn't matter when you are chainloading but it matters when the firmware tries to find the OS to boot.
Just to check: this worked fine before and you have not updated the firmware or anything since?
I would not recommend trying to switch to EFI in order to solve problems. It is generally much buggier than bios booting. The except would be if you had a GPT formatted disk.
So you ran grub-install while booted into your install of Arch? Are you sure you directed it to the correct disk? For example, if you'd chainloaded, that might be sdb rather than sda.
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
Thanks for your reply! I see your point that failure to boot is most likely caused by not having a bootloader properly installed to the MBR. The later stages of the bootloader work fine, as evidenced by my being able to chainload Grub. (For what it's worth, grub.cfg is using UUIDs and fstab is using /dev/sdXY. I've had no trouble with finding my mount points once booted.)
I'll try reinstalling the bootloader a few different ways and report back.
Edit: in answer to your questions, everything was working fine before, and I did not do any firmware updates.
Last edited by mwoodruff (2013-08-14 02:44:14)
Offline
That's what I'd try. I can't think what else would cause it not to find any OS at all. My machine gives that error if it can't find any boot loader, basically.
I'm not very familiar with bios booting but I assume the error means basically the same thing - it can't find anything to boot. And that has to mean it can't find the install to the MBR, I think. (On EFI it means it can't find an nvram entry and there's no efi app in the fall-back location. But that's the joys of EFI for you.)
Last edited by cfr (2013-08-14 02:52:26)
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
After these posts, I got quite busy and didn't have the chance to work on this problem for a while. Almost-working-properly has been good enough. Recently I got around to trying syslinux and grub again. Again, the same symptoms -- whichever bootloader I install to the MBR works great when I chain to it from another bootloader on a usb stick, but selecting the hard drive from the firmware boot devices menu results in "Operating System Not Found". I've tried all three methods for installing syslinux listed in the wiki: automatic, manual, and manual/altmbr. All three methods work, but again, only if I chain to HD1 (not HD0!) from the bootloader on a USB stick. I've also checked my procedure by installing Arch on other machines, which has been successful and free of incidents. I'm also using Arch as the primary OS on the PC where I work. In short, even though the machine is acting as if I botched the bootloader install, I can't find any evidence that I've done so. I'm back where I started, more convinced than ever that this is a firmware bug.
I got tired of having a USB stick tied up permanently in the role of a boot disk, and so I dug up an old 256MB SD card and installed syslinux on it. (I copied the nice syslinux menu from the Arch install media.) Now I boot from the cardreader, which works admirably and doesn't give me the same weary feeling that I'm wearing out my USB ports from too many insertions.
Offline
Is your disk using MBR or GPT partition map?
What is the output of fdisk -l /dev/sdX or gdisk -l /dev/sdX?
Please post the exact commands you are using to install grub/syslinux.
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline