Загрузка Windows с диска CD-ROM

Олег Татарников

Введение

Компьютер без жесткого диска

Подготовка дистрибутива

 

Популярный двоичный редактор Hiew

Введение

Б ездисковая операционная система, загружающаяся и работающая с компакт-диска, может понадобиться в следующих случаях:

  • для чтения полезной информации c диска, операционная система которого отказывается грузиться;
  • для восстановления разрушенной операционной системы на жестком диске из резервной копии;
  • для создания бездисковой конфигурации компьютера (в целях ее удешевления или снижения шума).

Естественно, что для чтения информации с какого-либо носителя можно было бы ограничиться традиционной загрузкой операционной системы DOS с системной дискеты. И даже если бы исходная операционная система работала с файловой системой NTFS, можно было бы заранее подготовить системный диск с какой-нибудь утилитой типа NTFS Reader For DOS, которая может читать разделы NTFS из-под окружения MS DOS и копировать данные из этих разделов на FAT-диски. Для доступа к NTFS-дискам из-под DOS используются популярные утилиты от Марка Русиновича, которые можно бесплатно взять с сайтов http://www.ntfs.com/ или http://www.sysinternals.com/ (бесплатными являются только драйверы для чтения таких дисков, а для записи или восстановления разделов понадобятся уже коммерческие версии).

Но учитывая огромные емкости современных дисков, трудно представить, куда может уместиться полученная информация, ведь дискет на такие объемы теперь не напасешься. К тому же обычные программы проверки дисков не смогут работать с NTFS-дисками при таком доступе.

Поэтому более удобным было бы решение с загрузкой, например, под Windows 95/98/Mе и полноценная работа с любыми устройствами под управлением этой операционной системы. К тому же и программа NTFS for Win98 (http://www.winternals.com/products/fct/ntfswin98.asp) более удобна и обладает большими возможностями, чем NTFS For DOS.

Коммерческая версия NTFS for Win98 может:

  • предоставить полную поддержку NTFS-дисков из-под Windows 9х;
  • обеспечить полноценный доступ к NTFS-дискам из других программ;
  • использовать те же NTFS-драйверы, что и в системах Windows NT/2000/XP;
  • запускать утилиту NTFSCHK для поиска и исправления ошибок на NTFS-дисках.

Кроме того, наличие утилиты ERD Commander позволяет проводить любые восстановительные работы на диске, вплоть до редактирования реестра в незапускающейся системе.

К тому же имеется возможность инсталлировать на CD-ROM-систему какую-либо программу для записи CD-R/RW и сохранять необходимую информацию на записываемых и перезаписываемых болванках.

После того как необходимая информация будет сохранена, исходную систему можно восстановить из резервной копии разрушенного жесткого диска, которую опять же можно предварительно сохранить на том же компакт-диске, с которого мы будем загружаться.

И наконец, можно просто загрузиться и работать без использования винчестера. Конечно, последняя возможность может показаться весьма экзотической, но при использовании компьютера исключительно в качестве игрового или мультимедийного устройства она вовсе не лишена смысла. Такое устройство в дешевой конфигурации без монитора можно будет использовать и для просмотра видео с CD- или DVD-привода с выводом прямо на телевизор либо для проигрывания CD-аудио или MP3-звука через внешнюю акустическую систему. Если же добавить монитор, то можно превратить данную конфигурацию в «безопасный» Интернет-браузер или даже в простую офисную систему для редактирования текстов.

Кроме того, в качестве основного носителя можно будет использовать флэш-карту или USB-Drive, которые, к сожалению, пока не поддерживаются непосредственно из BIOS материнской платы и нуждаются в подключении из уже загруженной операционной системы.

В начало В начало

Компьютер без жесткого диска

Итак, основная идея состоит в том, что достаточно продвинутая операционная система должна первоначально грузиться с CD (пусть, например, даже в режиме эмуляции флоппи-диска), затем необходимо создать RAM-диск (то есть электронный диск в памяти компьютера) и на него распаковывать (или переписывать с исходного CD-ROM) настроенную на конкретный компьютер полноценную операционную систему (возможно, в несколько урезанном варианте) с уже установленным необходимым программным обеспечением и драйверами. Собственно система Windows будет при этом работать с RAM-диска. Туда же можно поместить все необходимые программы, а на исходном загрузочном CD-диске оставить редко используемые (или большие по объему) программы и какие-то данные.

В итоге после запуска Windows CD-ROM можно будет даже вынуть из лотка, а привод использовать для чтения других дисков.

Для того чтобы изготовить загружаемую таким образом систему, вам понадобятся:

  • дистрибутив Windows (исходя из различных соображений лучше взять Windows 98SE);
  • для более экономной инсталляции можно воспользоваться профессиональной версией популярной программы 98lite, значительно облегчающей Windows 98/Mе и соответственно ускоряющей ее работу (http://www.litepc.com/index.html), причем для этой программы существует и русификация. В принципе, на сайте LitePC готовится версия для облегчения операционных систем и семейства Windows 2000/XP — 2000-XPlite, так что вскоре можно будет попробовать на прочность и более прогрессивные изделия от компании Microsoft. И тогда, выбрав минимальный способ установки — 98micro и полностью отказавшись от Internet Explorer путем удаления из ядра Windows 98 всего связанного с MS HTML, вы получите максимально сжатую и быструю операционную систему, занимающую менее 50 Мбайт (!) на носителе;
  • драйвер RAM-диска, причем стандартному драйверу RAMDRIVE.SYS фирмы Microsoft лучше предпочесть альтернативный — XMS Disk (XMSDSK.EXE), которому можно задать любую букву устройства. Его преимущество заключается еще и в том, что он понимает длинные имена и позволяет грузить компоненты операционной системы Windows;
  • утилита Drive Load (DRVLOAD.COM), которая может загружать *.SYS-драйверы из командной строки;
  • какой-либо универсальный CD-ROM-драйвер, который поддерживает CD-приводы. Можно взять стандартный набор с загрузочного флоппи-диска Microsoft Windows, но лучше попробовать UNIIDECD.SYS или VIDE-CDD.SYS, которые работают с большим количеством CD-ROM-приводов.

Кроме вышеприведенных программ вам понадобятся все необходимые драйверы, редактор с возможностью работы в двоичном режиме (можно взять стандартный Edit.com из Windows, Hiew (Hacker’s view), а также какую-нибудь оболочку типа Volkov, Norton или Windows Commander) и все базовые программы, которые вы планируете запускать из-под созданной таким образом операционной системы.

В начало В начало

Подготовка дистрибутива

Для предотвращения возможного разрушения рабочей операционной среды все приготовления лучше выполнять на отдельном жестком диске, предварительно установив туда свежую Windows 98SE.

Если же лишнего диска нет, можно проделать все на своем рабочем диске, но в этом случае необходимо сделать резервные копии файлов IO.SYS, MSDOS.SYS, AUTOEXEC.BAT, CONFIG.SYS, а также создать резервную копию реестра.

Итак, приступаем к реализации проекта.

Программа 98lite создает на диске специальный рабочий каталог С:\98SETUP, в котором она изготавливает дистрибутив усеченной системы Windows (в качестве исходника она использует оригинальный дистрибутив, например с CD от Microsoft). Естественно, что после такой операции вы лишаетесь поддержки от компании Microsoft, но 2-4-кратная экономия занимаемого пространства и значительное ускорение работы того стоят. В зависимости от вашего выбора установленная после такой процедуры операционная система Windows 98SE Lite может ужаться c 200 до 50 Мбайт (минимум при выборе 98micro и полном отказе от Internet Explorer и всех компонентов MS HTML).

Далее создаем на диске специальные рабочие каталоги C:\RAMDISK и C:\CDROM, которые будут у вас служить образами дисков новой операционной системы и в конце концов будут переписаны на RAM-диск и на CD-R/RW.

Теперь воспользуемся командой SUBST (файл subst.exe в операционных системах DOS/Windows), которая прописывается в конфигурационном файле AUTOEXEC.BAT и определяет виртуальные диски, соответствующие тому или иному каталогу на диске (например, SUBST Z: C:\#имя каталога#). Тогда после перезагрузки у вас появятся новые диски, содержимым которых будут каталоги диска C:, упомянутые в команде SUBST как #имя каталога# (соответствующий раздел станет корневым на новом диске).

Далее создадим системную дискету командой SYS A:\ и скопируем туда все необходимые файлы, которые нам понадобятся в дальнейшем: COUNTRY.SYS, DISPLAY.SYS, DRVLOAD.COM, DBLBUFF.SYS, EGA3.CPI, HIMEM.SYS, IFSHLP.SYS, KEYB.COM, KEYBRD3.SYS, MODE.COM, MSCDEX.EXE, SMARTDRV.EXE, SUBST.EXE, UNIIDECD.SYS, XCOPY.EXE, XMSDSK.EXE. В принципе в качестве базовой можно воспользоваться стандартной загрузочной дискетой Windows 98, убрав оттуда все лишнее и добавив недостающие файлы из каталогов WINDOWS и WINDOWS\COMMAND, а также вышеописанные DRVLOAD, UNIIDECD и XMSDSK. Места все они займут совсем немного, поэтому туда же можно будет на всякий случай поместить еще какую-нибудь небольшую командную оболочку типа Volkov Commander (VC). На этой дискете поправим (или создадим заново) файл AUTOEXEC.BAT примерно такого содержания:

<Autoexec.bat>
subst.exe y: c:\ramdisk 
subst.exe z: c:\cdrom
path a:\;c:\98setup
vc.com

После этого перегружаем систему с дискеты, входим в командную оболочку и временно переименовываем папку Windows, а также файлы win.com, system.ini, system.dat, user.dat в _Windows, _win.com, _system.ini, _system.dat и _user.dat соответственно, чтобы инсталлятор Windows не распознал их как уже существующую на диске систему.

Теперь запускаем программу 98LITE.EXE из каталога C:\98SETUP и, игнорируя все возможные предупреждения, ставим выбранную конфигурацию системы на новый диск Y: в каталог Y:\Windows.

Когда система потребует вынуть дискету и перегрузиться, то, ничего не вынимая, загружаемся опять в MS-DOS, заходим в командную оболочку, переписываем программу SUBST.EXE в каталог C:\98SETUP, а в файл AUTOEXEC.BAT на жестком диске добавляем строки:

c:\98setup\subst.exe y: c:\ramdisk 
c:\98setup\subst.exe z: c:\cdrom
path y:\windows;y:\windows\command;y:\windows\system; c:\98setup

Наконец, перегружаемся с диска (без дискеты) и завершаем установку операционной системы; затем ставим все необходимые драйверы и базовые программы на диск Y:, а все дополнительные программы — на диск Z: (все необходимые данные переписываем туда же, на будущий CD-ROM, то есть на диск Z:). Такие «далекие» буквы выбраны не случайно — это поможет нам без проблем грузиться даже в тех конфигурациях, где стоит много дисков и приводов CD-ROM. Настраиваем видеорежим, если необходимо — прописываем какие-то программы в автозагрузку (в реестре в разделе Run).

Запускаем Windows\System\msconfig.exe и убираем из автозагрузки scanregw.exe (заодно стираем из каталога C:\RAMDISK\WINDOWS (Y:\WINDOWS) программы scanregw.exe и scanreg.exe).

Затем заходим в «Панель управления», выбираем иконку «Система», закладку установки быстродействия системы и там отменяем использование виртуальной памяти — действительно, зачем нам виртуальная память на RAM-диске? Естественно, потом следует протестировать полученную конфигурацию на том объеме памяти, которую мы собираемся выделить. Соответственно из каталога Y:\WINDOWS пропадет файл Win386.swp приличного размера.

На всякий случай переименовываем в Y:\WINDOWS файл system.dat в system.cdr. В противном случае, если в нашей системе все же будет жесткий диск с операционной системой Windows, система может обратиться к его реестру. После этого опять придется перегрузиться с дискеты под MS-DOS, зайти в двоичный редактор и заменить в теле IO.SYS (редактируем тот, который находится на диске C:\, не забывая, что мы сохранили его резервную копию) значение SYSTEM.DAT на SYSTEM.CDR.

Загрузимся снова и проверим в реестре параметр HKLM\Software\Microsoft\Windows\CurrentVersion\SystemRoot — он должен быть Y:\Windows.

Теперь мы должны решить проблему с длинными именами файлов. Дело в том, что при переписывании под MS-DOS они у нас неизбежно будут усечены до восьми символов. Здесь есть три пути. Первый — это подчистить систему, удалив все длинные имена папок и файлов, а программы инсталлировать не в каталог Program Files, а в какой-нибудь короткий каталог Programs, чтобы затем смело переписать все содержимое на RAM-диск в один прием командой XCOPY (файл XCOPY.EXE ) или распаковать одним архивом (например, исполняемым под MS DOS SFX-файлом). Второй (более сложный) — это переписать систему в два приема: сначала переписать все файлы и папки, имеющие короткие имена (что будет достаточно для загрузки и работы Windows 98), а уже после ее загрузки дописать все то, что выходит за заветные 8+3 символа (автозапуском из-под Windows). Причем это можно сделать как вторым архивом, созданным уже под Windows, так и той же командой XCOPY (но это будет уже XCOPY32). И наконец, третий путь (комбинированный) — все короткое переносится на RAM-диск, а все длинное остается на CD-ROM. В принципе, в наиболее важных папках (типа Windows или Windows\System) длинных имен нет.

Теперь исправим файл MSDOS.SYS (взяв за основу тот, который находится на диске C:\ полноценной системы Windows 98, и не забыв, что старый мы сохранили). Поправим в нем некоторые параметры (для этого можно воспользоваться простым текстовым редактором типа Notepad или Edit.com из набора Windows, сняв предварительно параметр «Только для чтения»):

  • для того чтобы не загружать графический интерфейс автоматически, достаточно исправить в файле MSDOS.SYS параметр BootGUI с 1 на 0. При BootGUI равном 1 по окончании загрузки DOS и драйверов реального режима (которые запускаются из Config.sys и Autoexec.bat) сразу автоматически стартует Win.com, находящийся в папке Windows. Теперь он этого делать не будет, пока не запустится специально;
  • MSDOS.SYS управляет загрузкой еще нескольких драйверов реального режима, необходимость которых теперь сомнительна, но они занимают место в памяти. Поскольку мы не будем использовать сжатые диски (как, впрочем, и несжатые), вставим в [Options] строки DblSpace=0 и DrvSpace=0;
  • большинству пользователей, не работающих с интерфейсом SCSI, совершенно не нужна двойная буферизация дисков, поэтому можно исправить параметр DoubleBuffer на 0;
  • в целях экономии ресурсов или ускорения загрузки системы можно поправить еще целый ряд параметров: Logo выключает показ заставки, DisableLog запрещает ведение протокола загрузки и т.д.;
  • поправленный файл MSDOS.SYS может выглядеть приблизительно следующим образом:
    <MSDOS.SYS>
    [Paths] 
    WinDir=Y:\WINDOWS 
    WinBootDir=Y:\WINDOWS 
    HostWinBootDrv=Y 
    [Options] 
    BootDelay=0 
    DisableLog=1 
    DblSpace=0 
    DrvSpace=0 
    Logo=0 
    BootMulti=0 
    BootGUI=0 
    DoubleBuffer=0 
    AutoScan=0 
    Network=0 
    BootWarn=0 

Перепишем файл MSDOS.SYS на дискету вместо того, который там был.

После этого в последний раз перегружаем систему с дискеты, входим в командную оболочку и восстанавливаем исходную рабочую среду: опять переименовываем папку Windows, а также файлы win.com, system.ini, system.dat, user.dat, с тем чтобы вернуть исходную конфигурацию. А кроме того, возвращаем сохраненные IO.SYS, MSDOS.SYS, AUTOEXEC.BAT, CONFIG.SYS, то есть приводим все к тому, что было вначале.

И наконец, поправим (или создадим заново) файлы CONFIG.SYS и AUTOEXEC.BAT на загрузочной дискете, чтобы они выглядели примерно так, как на листинге, представленном внизу страницы.

Итак, мы имеем загрузочную дискету и систему на диске в подготовленной конфигурации, то есть все готово для записи болванки CD-R/RW.

При помощи какой-нибудь программы для записи CD-R/RW (например, Nero — Burning Rom) записываем загрузочный CD-диск (указав в качестве загрузочного сектора подготовленную дискету, а остальное взяв из каталогов C:\RAMDISK и C:\CDROM). Возможно, что с первого раза у вас что-то не получится, поэтому лучше потренироваться на перезаписываемых CD-RW-дисках.

После загрузки с CD операционная система Windows должна оказаться на диске Y:\ и работать с него.

Советуем критически отнестись к приведенному примеру и проверить его самостоятельно. Например, важно выбрать такой объем памяти, чтобы на него установилась полученная система (не думаю, что вам будет не жалко 200 Мбайт под RAM-диск, но до 128 — вполне терпимо). Если вам захочется поэкспериментировать с другой операционной системой, не забудьте сначала выяснить минимальные требования к диску и для нее.

Для того чтобы сделать подобное решение универсальным (то есть способным работать на компьютере любой конфигурации), можно удалить из «Панель управления»/«Система»/«Устройства» все до одного устройства — тогда при последующей загрузке система не будет искать новое оборудование и загрузится на любой машине (правда, в VGA-режиме и без каких-либо устройств — только голая оболочка).

Единственное ограничение, с которым вы можете встретиться, — это отсутствие поддержки загрузки с CD-ROM в BIOS некоторых материнских плат. В этом случае к вашему CD-ROM дополнительно понадобится подготовленная дискета.

 

Все необходимые программы и драйверы вы найдете на нашем CD-ROM-диске.

Источники, которые использовались при написании данной статьи:

  1. Специализированное малобюджетное решение для просмотра видеодисков в формате MPEG-4 по домашнему телевизору (http://martin-martin.narod.ru/winram.html);
  2. Вариант с созданием виртуального диска и загрузкой с гибкой дискеты (http://www.slawwwa.boom.ru/0SRWIN.htm).

КомпьютерПресс 11'2002


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует