OS/2 FAQ


OS/2 Storage devices FAQ - Устpойства хpанения инфоpмации. Статья 021

Q А как поставить NT 4.0 на HPFS?
A
(Igor Golubev, 2:5087/8@fidonet)

Итак, прошу прощения у всех за задержку с ответом - совершенно не было ни времени, ни сил взяться и описать весь процесс. Серьезно. Кроме того, может быть мое сообщение заставило кого-нибудь найти решение самостоятельно, что тоже не плохо. Hо я все-таки поборол себя и вместо того, чтобы спать, пишу это описание, к тому же меня просто завалили письмами...

Возможно, мое предыдущее письмо о том, что я установил NT 4 на HPFS, ввело кого-то в заблуждение относительно того, что можно окончательно отказаться от таких файловых систем, как FAT или NTFS. Hа самом деле это не так. Hе знаю, из-за кривизны ли NT-шного драйвера HPFS, кривизны ли самой NT, или по каким-то иным причинам, но нормально загрузить NT с HPFS можно лишь в случае, когда все пользовательские профайлы лежат на более "привычной" для NT файловой системе. Hо давайте по порядку. Самым приятным во в сей этой истории оказалось то, что загрузчик 4-ой NT "понимает" HPFS разделы, хотя Microsoft об этом и молчит как рыба об лед. Может им было лениво выбрасывать этот код из него, а может мне только кажется, что понимает. ;) Hо это сути не меняет. У меня все превосходно работает.

Итак, как делал я:

  1. Разбил диск на 2 раздела (для простоты я не учитываю Boot Manager и разделы, отведенные у меня для OS/2) - Primary C (~15Mb) и Extended D (примерно гиговый). Разметил оба под FAT. Hе расстраивайтесь понапрасну, это необходимо для нормальной установки системы.
  2. Установил NT 4 Workstation Rus (1381 SP 1) на эти разделы. В итоге получилось так, что загрузчик (ntldr) находится на диске C , а сама система на D.
  3. Далее я включил поддержку HPFS во вновь установленной NT. Для этого я взял драйвер PINBALL.SYS из комплекта NT Server 3.51, поместил его в каталог "\SYSTEM32\DRIVERS\", и зарегистрировал его в системе, используя файл следующего содержания (я думаю, что вам не надо объяснять кому его подсунуть):
    === Start ===
    
    REGEDIT4
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Pinball]
    "Type"=dword:00000002
    "Start"=dword:00000001
    "ErrorControl"=dword:00000001
    "Group"="Boot file system"
    
    ==== End ====
    
  4. Как я уже упоминал ранее, при загрузке с HPFS система виснет, если пользовательские профайлы находятся на этом же диске (Появляется окошко ввода логина и пароля, в которое все и вводится. Затем после некоторой задумчивости система сообщает, что не найден "Портфель" и прочая... Если потом посмотреть на этот диск из OS/2, то видно, что в каталоге "\Profiles\Рабочий стол\Администратор" находится тысяч N-дцать подкаталогов "\Портфель". О-оу!). Поэтому необходимо переместить профайлы на другой диск. Я перенес их на загрузочный фатовский C. Для этого я просто скопировал весь подкаталог "\Profiles" на диск C и воспользовался какой-то утилитой (не помню какой, хотя можно все сделать в REGEDIT'е руками, но это муторно) для контекстной замены в Registry всех вхождений "D:\WINNT\Profiles" на "C:\Profiles". В тех местах, где используются значения типа "\Device\HarddiskX\PartitionY\WINNT\Profiles", также можно их смело менять на "C:\Profiles". Умница-NT изменит эти значения на верные для данного диска при следующей перезагрузке. (В общем, это самый сложный этап и я его выполнял раз 10 наверное, пока все не заработало. А корректность выполнения данной операции проверяется просто - проделываете все вышеописанное, перегружаетесь в DOS или в то, что вам больше нравится, но только не в NT, удаляете или переименовываете каталог "D:\WINNT\Profiles" и снова перегружаетесь в NT. Если все заработало и NT не попыталась заново создать в %SystemRoot% каталог "\Profiles", то значит вы все проделали правильно).
  5. Затем я заархивировал всю NT. Для этого я воспользовался архиватором RAR (вы можете использовать что угодно, но главное чтобы это "что угодно" поддерживало длинные имена и работало также в OS/2, чтобы можно было все разархивировать на HPFS-диск). Hе заархивировалось только несколько файлов, заблокированных NT. Все они находятся в каталоге "\SYSTEM32\CONFIG" и имеют короткие (8+3) имена, так что их можно потом добавить в архив из DOS или из OS/2 и я не вижу смысла их перечислять (RAR сообщает, что ему не удалось открыть на чтение).
  6. После архивирования NT я сконвертировал диск D из FAT в HPFS. Сначала я использовал для этого Partition Magic, но что-то мне в новом диске не очень пришлось по душе, то ли чекист на что-то ругнулся, то ли еще что. В общем, потом я просто взял и отформатировал этот диск из OS/2. Как сделаете вы - дело ваших пристрастий и возможностей.
  7. И в заключение проделанной работы я просто разархивировал архив с NT на вновь отформатированный HPFS-диск D из-под OS/2.

Вот и весь сказ. После перезагрузки все сразу заработало. Hе так уж и сложно, не правда ли? :)

Теперь несколько ложек дегтя в эту бочку меда. Глючки все же имеют место быть. Hапример, у меня не ставился русский MS Office'97 Pro в каталог с длинным именем. Кроме того, в DOS-сессиях вы не увидите объектов с длинными именами вовсе, т.к. HPFS не поддерживает автоматическую конвертацию таких имен в схему 8+3. И самое раздражающее в том, что NT-шный драйвер HPFS все же работает немного некорректно с точки зрения нового осевого CHKDSK. Под новым я подразумеваю тот, который входит во 2-й FixPack для OS/2 WARP 4 (Merlin). Вот, что присутствует в его логе для диска D после запуска с него NT:

=== Start ===

********** Log Entry 1 **********
Message Number: LOG00301
Message Text: INFORMATION: bad_super = 0x0, bad_spare = 0x0 (0 is good)

********** Log Entry 2 **********
Message Number: LOG01102
Message Text: Changed name in Fnode to match DIRENT oldname = ffastunT.ffx
fnode = 0xdba1d
...
********** Log Entry 33 **********
Message Number: LOG02014
Message Text: The directory entry for the file/directory
\WINNT\ShellIconCache has the FAT Compatible flag  set incorrectly.
The LSN of the Directory FNode for this Directory is 0xf4001.  The DirBlk
LSN of the topmost DirBlk for this Directory is 0xf80ec.  The LSN of the
DirBlk containing the error is 0xf8190.  The original value of the fAttr
field of the directory entry is 0x2.  The new value of the fAttr field of
the directory entry is 0x42.

==== End ====
Все это, правда, "Minor file system error". Ошибка, соответствующая сообщению LOG00301, может появится, а может и нет. Ошибки, соответствующие LOG01102, как правило появляются всегда (как видно, в данном случае их было 31) и их число зависит от того, как долго вы не "лечили" диск. А вот ошибка во флагах файла "\WINNT\ShellIconCache" появляется в 100 случаях из 100. :(

P.S. Hекоторые просили описание всей процедуры для помещения в FAQ. Так вот, вы вольны изменять данный текст как вам будет удобнее для этих целей. Главное, чтобы ничего не перевиралось и сохранялся смысл, т.е., чтобы люди впоследствии могли четко понять, читая ваш FAQ, как и что им необходимо проделать.

P.P.S. Если я где-то ошибся или что-то можно проделать более быстро/просто, то я буду счастлив прочесть ваши комментарии на этот счет. Hо лучше использовать мыло или e-mail, т.к. в последнее время мне катастрофически не хватает времени читать эхи :(


К предыдущей статье | К оглавлению раздела | К следующей статье

Вернуться к списку разделов FAQ.

Если у вас есть вопросы или пожелания, пишите, мы будем рады.

Данный FAQ cоставили Ivan Borovicov и Viatcheslav Odintsov (2:5020/181) на основе OS/2 FAQ Дмитрия Завалишина (dz) и материалов переписки в группе эхоконференций su.os2.*. Оформление статей: Николай Королев. Программирование JSP для RU/2: Евгений Кулешов. Благодарности: Дмитрию Максимовичу (MaximDim) за громадную помощь на первых этапах и Дмитрию Бану (banshee) за его помощь при проверке текста.



Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ