Это - достаточно беспорядочный архив сообщений конференций сети fidonet, которые на момент их прочтения мной
показались полезными или интересными. Многие устарели, многие узкоспецифичны и малоинтересны, но может оказаться и что-то новое...
- __techs (2:5015/42) ----------------------------------------------- __techs - Msg : 200 of 1000 From : Vadim Kruglik 2:5000/95 04 Dec 96 06:33:04 To : Dmitry Machkov 04 Dec 96 23:09:58 Subj : dual boot (was: start) ------------------------------------------------------------------------------- @AREA:SU.WINDOWS.NT Hello Dmitry! Tuesday December 03 1996 01:02, Dmitry Machkov wrote to Vadim Kruglik: DM> Добpый человек, а не мог бы ты и мне сей текстик кинyть? Бyдy очень DM> благодаpен! === Cut === http://www.bcpl.lib.md.us/~dbryan/directboot.html DIRECT BOOT INTO WinNT/Win95/DOS J. David Bryan dbryan@mail.bcpl.lib.md.us November 13, 1995 It is possible to boot directly into each of the three operating systems using the Windows NT 3.51 boot loader (note that this procedure will not work with NT versions prior to 3.51). Specifically, one can boot directly into DOS, without going through Win95, from the NT multiboot menu. The two required conditions are: 1.The "correct" system files must be present with the required names. 2.The "correct" boot sector must be executed. The information contained herein is derived in part from the Microsoft 95WRK.HLP file supplied on the Win95 final beta CD, modified for post-installation operation (the relevant page is titled, "Installing Windows 95 for Dual Booting with Windows NT"). MY SYSTEM I have NT 3.51 Workstation, Win95, and DOS 6.22 (with WFW 3.11, though this does not matter). As I have been upgrading each system (via MSDN-II) as they were released, I first installed DOS, then NT, then Win95 (in that order). My primary (bootable) partition is the first partition of the first hard drive (this is drive C:) which is FAT. I have each system on a separate partition, though this is not necessary -- it is just easier if I need to wipe out a system and start again. Drive C: therefore contains all of the startup files for all operating systems. A listing of all files (including hidden files) should contain at least the following NT system startup files: BOOTSECT.DOS BOOT.INI NTDETECT.COM NTLDR Plus the following files if DOS was booted more recently than Win95: IO.SYS MSDOS.SYS MSDOS.W40 WINBOOT.SYS Or the following files if Win95 was booted more recently than DOS: IO.DOS IO.SYS MSDOS.DOS MSDOS.SYS I installed DOS, NT, and Win95, in that order, each to separate directories (on separate partitions). THE END RESULT When you are done, and you reboot, you will get the NT boot loader menu (that starts out at the top of the screen with "OS Loader V3.51") with (at least) these choices: "Windows NT 3.51" "Windows 95" "DOS 6.22" and when you select a choice, you will then see one of the following messages at the top of the screen (depending on which system you select): "NTDETECT V1.0 Checking Hardware" "Starting Windows 95..." "Starting MS-DOS..." WHAT YOU NEED TO DO The steps needed to implement direct boot are: 1.Edit BOOT.INI to add separate choices for Win95 and DOS. 2.Make available separate Win95 and DOS boot sector files. BEFORE YOU START 1.Make backups of the files BOOT.INI and BOOTSECT.DOS in the root of C: (BOOT.INI is hidden; BOOTSECT.DOS may be). 2.Be sure you have BOOTABLE Windows NT Setup Diskettes (three diskettes). If not, run "winnt32 /o" from the installation CD to make them. 3.Be sure you have a BOOTABLE DOS diskette that contains the SYS.COM program. You can also use this system to fix any problems you may introduce in error (you can restore BOOT.INI and BOOTSECT.DOS and start over). 4.Be sure you can boot into NT, Win95, and DOS (via Win95). If you can't reach DOS from Win95, you may need to add the line "BootMulti=1" to the "[Options]" section of MSDOS.SYS (do this from within Win95, to be sure you edit the right file). 5.It will help (but is not necessary) to have a hex dump program available (or you can use the NT DEBUG command) so you can look at the contents of the BOOTSECT files and verify their correctness. HOW YOU DO IT (The following procedure can be used from any of the available systems; I used DOS.) To get the "correct" system files (with the correct names), edit the BOOT.INI file (hidden and read-only) present in the root of C:. You should have lines something like the following: [boot loader] timeout=10 default=multi(0)disk(0)rdisk(1)partition(1)\\WINNT [operating systems] multi(0)disk(0)rdisk(1)partition(1)\\WINNT="Windows NT Version 3.51" c:\\bootsect.dos="Windows 95" Edit the "c:\\bootsect.dos" line and add a new line following it, as follows: BEFORE EDITING AFTER EDITING ---------------------------- -------------------------------------- c:\\bootsect.dos="Windows 95" c:\\bootsect.w40="Windows 95" /WIN95 (new line) c:\\bootsect.dos="MS-DOS 6.22" /WIN95DOS The /WIN95 and /WIN95DOS switches cause NTLDR to rename the DOS and Win95 system files back and forth so that the "correct" names are used with the operating system selected. (If you have not noticed before, look at the hidden files in the root of C: when running DOS and Win95. Under Win95, the DOS files are renamed IO.DOS and MSDOS.DOS; under DOS, the Win95 files are renamed WINBOOT.SYS and MSDOS.W40; IO.SYS and MSDOS.SYS belong to the "current" operating system). Note that the /WIN95 and /WIN95DOS switches are only recognized by NTLDR version 3.51. The NTLDR from versions 3.5 and earlier won't recognize these switches, so the renaming won't take place. You have also requested that Windows 95 be booted using the boot sector in the file BOOTSECT.W40, while DOS is booted using BOOTSECT.DOS. However, after your Win95 installation, BOOTSECT.DOS contains the Win95 boot sector, not the DOS boot sector. Therefore, rename BOOTSECT.DOS to BOOTSECT.W40. Now you need a BOOTSECT.DOS that contains a DOS boot sector. Fortunately, NT will make one for you. Unfortunately, you have to go through about 10 minutes of the setup program for it to generate the BOOTSECT.DOS (which takes about 1 second). Here's how (from the Microsoft KnowledgeBase articles Q102793 and Q104429): NOTE: BE SURE YOU HAVE A BOOTABLE "NT SETUP DISK 1" BEFORE STARTING! AFTER EXECUTING "SYS" AND BEFORE BOOTING SETUP, NT CANNOT BE BOOTED! 1.Be sure that the last system you ran from the hard disk was DOS (to ensure the proper files are replaced in step 3 below). THIS IS IMPORTANT! To be sure, you may want to boot DOS via Win95 before continuing. 2.Boot DOS from the bootable diskette that contains the MS-DOS program SYS.COM. 3.From the bootable disk in drive A, use the following command to remove the Windows NT boot sector: SYS C: You should receive a "System Transferred" message. SYS.COM replaces the partition boot sector, which loads NTLDR, with an MS-DOS boot sector that loads MSDOS.SYS and IO.SYS. SYS.COM also replaces IO.SYS, MSDOS.SYS, and COMMAND.COM in the root of C:. This is why DOS should have been the last system run from the hard disk (so that the files named MSDOS.SYS, etc. are the DOS versions, not the Win95 versions). IF YOU LAST RAN WIN95, YOU WILL OVERWRITE THE WIN95 VERSIONS! 4.Reboot the system with the Windows NT Setup Disk number 1 in drive A. 5.When prompted with "To repair a damaged Windows NT Version 3.51 installation, press R", enter R for Repair. Follow the prompts, answering questions regarding the hardware configuration with what is reasonable for your system. 6.Setup will eventually prompt with the following repair options in a box: [x] Inspect registry files [x] Inspect startup environment [x] Verify Windows NT system files [x] Inspect boot sector Continue (perform selected tasks) Alter the options so that only the last one, "Inspect boot sector" is checked. Then choose "Continue". (The "Inspect boot sector" option used to be called "Verify boot files".) 7.When setup prompts "If you have the Emergency Repair Disk, press ENTER", you may hit ESC to locate the "previous" (i.e., your working copy) of NT. You do not need the Emergency Repair Disk, though you may use it (it does not matter; setup is not going to use it). 8.Setup will replace the DOS boot sector with the NT boot sector, and store the DOS boot sector in BOOTSECT.DOS. It will then tell you to reboot your system. That is it! You should now be able to boot directly into DOS, Win95, or NT, from the multiboot menu. WHY IT WORKS When you start the system, the first sector of the active disk partition is loaded into memory and executed. This sector is called the "boot sector" and is physically located "outside" of the FAT file system on drive C: (for a more comprehensive discussion, see the Microsoft KnowledgeBase article Q101787, "General Information on Starting Multiple Operating Systems"). If you can boot NT, then the boot sector is the "NT boot sector", which loads and runs the program NTLDR, which presents the multiboot menu. When DOS was installed, it put its own boot sector in that loads IO.SYS. When NT was installed, it overwrote DOS's boot sector with its own (the NT boot sector) after copying the DOS boot sector to a file called BOOTSECT.DOS in the root of C:. When you selected "MS-DOS" from the NT boot menu, NTLDR would run BOOTSECT.DOS, which would load IO.SYS, and DOS would boot. When Win95 was installed, it left the NT boot sector in place, but overwrote BOOTSECT.DOS with its own boot sector (the "Win95 boot sector") which also loads IO.SYS. Win95 also wants to install its own IO.SYS and MSDOS.SYS, which conflicts with the DOS versions. So it renames DOS's IO.SYS and MSDOS.SYS to IO.DOS and MSDOS.DOS. Since DOS and Win95 each expect their system files to be *.SYS, their respective IO.SYS and MSDOS.SYS files must be renamed back and forth as the two systems are booted. Therefore: After booting Win95, DOS's IO.SYS and MSDOS.SYS become IO.DOS and MSDOS.DOS After booting DOS, Win95's IO.SYS and MSDOS.SYS become WINBOOT.SYS and MSDOS.W40 (Why Win95 renames its IO.SYS to WINBOOT.SYS instead of IO.W40, I do not know). The Win95 IO.SYS will perform this renaming when you select "Previous version of MS-DOS", but apparently uses an internal loader to perform the equivalent of the DOS boot sector. NTLDR will also perform the renaming (with the /WIN95 and /WIN95DOS switches) but still needs an external BOOTSECT file to boot DOS. You can verify which boot sectors are in which file by examining the files with a hex dump program (or use the NT command "DEBUG"). Look at the first few bytes and also at the last few bytes for the following strings: First bytes Last bytes Operating System -------------------- -------------------- ---------------- MSDOS5.0 IO SYSMSDOS SYS DOS MSDOS5.0 NTLDR NT MSWIN4.0 WINBOOT SYS Win95 USING NT DEBUG TO VIEW THE BOOTSECT FILES 1.Open a console window under NT. 2.Change the current directory to the root of C:. 3.Enter the command "debug bootsect.dos" (or "debug bootsect.w40"). 4.At the "-" prompt, enter the command "d 100 L 100" to see the first half of the file. 5.At the "-" prompt, enter the command "d 200 L 100" to see the second half of the file. 6.At the "-" prompt, enter the command "q" to quit back to the command prompt. CONTACT ME IF YOU NEED HELP I have run through this script on my system, and it works. However, I have not tested it on any other configuration. Also, I may not have thought of every contingency. That is why you made backup files! If something does not work right, and the solution is not obvious, restore your backup files and e-mail me a description of the problem. I will try to get back to you as soon as possible. Also please note that I have not performed an exhaustive examination of the operation of the NT or Win95 boot process, so there may be factual errors in my explanations. I have investigated just enough to get the process to work, but no more! Corrections are welcomed. In addition, I have never used OS/2 or Linux, so I regret that I cannot offer a way to integrate these systems into the direct boot process, though such integration may be possible. === Cut === C Веpами и Hадеждами, Vadim PS2moderator: а не постить ли сей текстик сюда раз в две недели? Я уже замаялся его мылом рассылать... --- GoldED/W32 2.51.A0901+ * Origin: Человек -- твоpец своих пpоблем (2:5000/95)