On 10/10/2007, Christopher Bianchi <[EMAIL PROTECTED]> wrote: > Nick Guenther ha scritto: > > On 10/10/07, Christopher Bianchi <[EMAIL PROTECTED]> wrote: > > > >> Hello everyone. My situation is this: > >> i've a laptop, a Sharp pc-ax10 with Windows 2000 preinstalled , without > >> cdrom, floppy. I wish install OpenBSD on it. Naturally bios can't boot > >> from USB. > >> So i've thinked to boot the bsd.rd , but how ? The faq explain the > >> procedure from an older OpenBSD operating system... i've Windows 2000 on > >> it. > >> > >> Is it possible ? and if is possible, in which way ? Where i must put the > >> bsd.rd and in which way i can boot from him ? > >> > >> I've tried google, but nothing :-( > >> > >> Thanks for the attention > >> > > > > Can your BIOS boot from the network (PXE)? If you can set up a PXE > > server with "pxeboot" as the boot image then you can boot that way. > > > > Alternatively you can pull out the hard drive, plug it into a > > different computer or a USB-to-IDE converter, install there, and then > > put it back. > > > > -Nick > > > > > > Thanks for the attention Nick, but 1) i can't boot from pxe ( damn Sharp > ) and 2) i wish an elegance solution without pull out the hard disk. Thanks
DISCLAIMER: I'm talking out my arse here, and I don't know if what you're hoping to do is even possible. That said, here are my thoughts on the matter: (1) The only way to hand off control from one operating system to another operating system is to make a program run exclusively (not preemptively multitasked ( http://en.wikipedia.org/wiki/Preemption_%28computing%29#Pre-emptive_multitasking )) and with full access to the entire computer, including all of the memory (ie. outside of memory protection ( http://en.wikipedia.org/wiki/Memory_protection )). (a) To use unix terminology, you would need to start the system in single user mode ( http://en.wikipedia.org/wiki/Single_user_mode ), and then you would need a program that can load the OpenBSD kernel and hand off control to it. In some very rare cases, programs like this do exist. I remember (unsuccessfully) trying to install NetBSD on an old Apple PowerBook 145B many moons ago. Because the firmware (ie. the "BIOS") of this Motorola 68K based laptop did not support loading a non-Apple OS, the solution there was to load Mac OS 6 or 7.whatever, and then run a Mac OS program that would seize control of the entire machine and load NetBSD. (This would have worked, except that my machine had too little RAM and HDD space.) The old Mac OS was not a proper preemtive multitasking OS w/ memory-protection; and writing a program to load another OS from it was only possible because of these limitations. Windows 2000 however is built on NT (OS/2) technology and has memory protection and preemtive multitasking. No a program like that old NetBSD boot loader cannot exist for Windows. However, a kind of single user mode does exist for Windows 2000, it's called the recovery console ( http://support.microsoft.com/kb/229716 ). However, the recovery console is sadly not installed by default; you can either boot it from the Windows 2000 install CDs (which you say you can't boot), or it can be installed by running "winnt32.exe /cmdcons". However, if the recovery console isn't already installed, then the Windows 2000 installation files probably aren't on your HDD either, and you'd then need to run "winnt32.exe /cmdcons" from the Windows 2000 install CD (which, again, you say you can't access). Even if you have the recovery console installed, I have no clue how to get custom programs installed into it. This might be extra hard to do, because, to quote Wikipedia: "[The Recovery Console] is independent of the (...) operating system." And, to quote Annoyances.org: "The Recovery Console looks like DOS, but it isn't DOS." I don't know if even a single non-MS program for the recovery console exists. That probably means that a BSD loader program that you could run from the recovery console is a (big fat opium-) pipe dream at best. (b) However, Windows OSes have a reputation of being not the most secure of operating systems. Hypothetically speaking, if you knew a kernel exploit and or virus/trojan that would allow you to insert arbitrary code for exclusive execution deep into the windows kernel, then you could theoretically use that type of vulnerability to write a BSD loader. Your best bet there may be to insert your boot loader early in the NT boot process by somehow patching either Ntdetect.com, NTLDR, or ntoskrnl.exe. (Cf. http://en.wikipedia.org/wiki/Ntoskrnl.exe , http://en.wikipedia.org/wiki/NTLDR , and http://en.wikipedia.org/wiki/Ntdetect.com .) This would of course quite possibly also wreck your Windows 2000 installation, except if the inserted code somehow presented the user a boot menu to select whether to load the BSD kernel or continue to load Windows. The way I've followed IT news for a while, I am fairly sure that no such program currently exists. I am unsure how involved it would be to write one, and I am not a programmer. (c) An almost certainly better option would be NOT to attempt to go root and hijack the entire PC from inside a fully booted Windows 2000 session, but to either patch the boot sector and/or MBR, and insert your boot loader there. There are plenty of boot managers out there that do similar things, however I know none that would allow you to drop in an OpenBSD kernel file and boot that as is. Some hacking may be required. Not suitable for small children due to choking hazard, and always read the label. (2) You may find it much easier to install OpenBSD inside a VirtualPC or QEMU emulator running on Windows 2000. (3) A USB floppy or CD drive may not allow you to boot, but may allow you to install stuff on your laptop (that's not much better than copying files onto the notebook over your network connection, but it may at least allow you to pop in a windows 2000 install CD and maybe even install the recovery console). (4) Does your Lappy have PC card slots? ( http://en.wikipedia.org/wiki/PC_Card ) IIRC, some PCMCIA CD-ROM or floppy drives even allowed the BIOS to recognise them and/or allowed the user to boot from them. (5) An interesting solution to a similar problem exists in the case of Ubuntu Linux, in the form of their install.exe ( https://wiki.ubuntu.com/install.exe ). AFAIK this works as follows: The Ubuntu install.exe program is a regular Windows program, loaded from within Windows. Instead of trying to commandeer the Windows 2000 session, it merely installs a file on the existing Windows NTFS partition, modifies the boot sector, and prompts the user to reboot. When the user then reboots their PC, a boot manager is loaded from the boot sector. If Windows 2000 is selected, booting continues as before, but if Ubuntu is selected, then the NTFS-3G ( http://en.wikipedia.org/wiki/NTFS-3G ) driver is loaded (?presumably still from the bootsector or MBR?) and once the program can access the existing NTFS partition it then accesses only the file that was installed on the NTFS partition, and that (huge) file is actually a disk image, containing an entire Ubuntu installation, which is then booted. It's an interesting solution, and if you write really good code, then you might be able to use the Ubuntu project's solution and adapt it to OpenBSD. Personally though, that kind of hacking would be way over my head. (6) Given the above (and given the absence of other options), you may want to reconsider your aversion to cracking the lappy's case and swapping its HDD. This might in fact be the easiest of options. Good luck! --ropers