CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
17.09.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки

Диски, разделы, буквы...

Вот, не кажется мне MS Windows такой дружественной, как утверждают её пользователи. Ничего удивительного, впрочем: сам я её пользователем практически не являюсь, и сталкиваюсь с ней преимущественно тогда, когда не только клиент, но и ближайший win-администратор не может получить от компьютера под управлением этой ОС то, что им бы хотелось. Безусловно, я не являюсь знатоком MS Windows, а с MS Office (да ещё каким-нибудь модерным) и вовсе не знаком, но зато я неплохо знаю, как организуется хранение информации, происходит загрузка IBM PC, определяются PCI-устройства, осуществляется сетевой обмен, "работают" вирусы и ещё чуть-чуть. Так вот и оказываюсь время от времени "последней инстанцией" для своих win-коллег. Ну, что ж, бывает. Интересно даже...

Довольно часто поводом для таких прецедентов являются проблемы загрузки. Лично я их источником полагаю завуалированное желание MicroSoft видеть на отдельном компьютере только одну ОС. Или даже только одну инсталляцию (если речь об инсталляциях MS Windows). Ну, не существует объективных трудностей для наличия на одном компьютере нескольких загружаемых систем. Не считая аппетитов M$, разумеется.

Почти также упорно MicroSoft сопротивляется клонированию разделов со своей ОС. Я понимаю: есть EULA и "дух" её (если не "буква") убеждает нас, что ОС покупается для однократного и исключительно личного использования (как некоторые товары медицинского назначения — не будем уточнять какие). Но никто не убедит меня, что пользователь не имеет права добавить к предустановленной на ноутбуке Vista честно купленную пару лет назад XP. Или перенести всё это "хозяйство" на винчестер большего размера.

Вот тут-то и требуются "независимые" от MS приёмы: мультизагрузка, способы маскирования разделов, копирование внесистемными средствами и т.д. и т.п. И всё бы хорошо (чего-чего, а этого добра в мире open-source предостаточно), да только заканчивается всё, в конечном счёте, загрузкой всё той же MS Windows, а, значит, на последнем этапе мы опять "отдаёмся" на милость этой ОС. А она, сердешная, имеет "родимое пятнышко" ещё от CP/M — именование устройств и разделов буквами алфавита. Зачем? Понятия не имею. Но тысячи абсолютных ссылок в registry — это таки "класс". Ну, не хотят они использовать единую файловую систему, ладно. Так нумеровали бы устройства, что ли. И далась им эта вертикальная совместимость с "зародышевыми" ОС...

Всё бы ничего, пока на IBM PC один активный первичный раздел, но если нет... Известное правило "загружаемый раздел — С:, логические начинаются с D:, остальные первичные — после" даёт самые неожиданные результаты в зависимости от количества primary разделов, CD-приводов, способов маскирования, использовавшихся при инсталляциях второй и последующих, соотношения SATA/IDE винчестеров, наличия RAID-ов и т.д. Именовать берутся все: BIOS, загружаемые системы, все эти PQMagic-и и Acronis-ы... Нетрудно догадаться, что эти именования часто не совпадают. И вот "буква" таким образом поименованного раздела "впечатывается" в registry эксплуатируемой системы. Уже, возможно, нет ни устройств, ни разделов, заставивших присвоить системному разделу имя Е: (и так далее), а абсолютные ссылки — есть. Ну, не прелестно ли?

По мнению одного остроумного админа, подобного рода случаи есть "извращения, нарушения правил безопасного секса. Расплата — обычная, переустановка, точнее, установка с нуля". Извращения эти, однако, не так уж редки в среде "продвинутых" пользователей. Помимо уже упомянутой мультизагрузки это может быть и инсталляция в новый раздел (без уничтожения старого, системного), "распад" RAID-а — мало ли? Так можно всё-таки перенести на новый винчестер системный раздел E: (F: и т.п.)? Пробуем...

При всём уважении к "старым-добрым" PQMagic/Ghost, работающим из-под DOS, использовать их смысла не вижу: отсутствие в DOS полноценной поддержки SATA-устройств, USB, NTFS... Знаю, что есть "костыли" и для DOS, но — зачем? Не импонируют также всевозможные Reanimator-ы — у меня, признаться, никогда не хватало терпения дождаться окончания их загрузки. Не проще ли использовать в качестве инструмента какой-нибудь Linix rescue-cd? Например — RIP Кента Роботти.

Итак, исходные данные: есть новый винчестер, на котором предполагается разместить пару-тройку ОС, одна из которых — MS Windows. Причём, перенести оную нужно со старого винчестера, где она находится, по странному стечению обстоятельств, в разделе, скажем, E:. По порядку:

  • размечаем новый диск каким-нибудь cfdisk/fdisk — кому что нравится;
  • копируем раздел Е: с помощью partimage. Куда? Да куда хотим: на флэшку, на не-целевой раздел нового винчестера, присоединяемый через USB IDE-драйв, etc.;
  • восстанавливаем с помощью всё той же partimage нужный раздел на новом диске;
  • подгоняем его размер с помощью ntfsresize (на новом диске выделенный раздел, полагаю, больше старого?);
  • устанавливаем на новый диск grub и загружаем с его помощью ОС из вновь созданного раздела. Не забудьте о флагах активности (загружаемости). В связи с тем, что нынешний grub читает и NTFS, то помимо известного ранее способа загрузки "по цепочке", можно загружать и непосредственно загрузчик XP: boot (hd0,X)/ntldr.

Все упомянутые утилиты из состава RIP и, разумеется, open source.

Не тут-то было, однако... Это Вам не Linux какой-нибудь, где достаточно исправить пару символов в fstab. Старая "новая" система при загрузке полагает себя находящейся на С:, а ссылается, сплошь и рядом, на E:. Практически, происходит следующее: система при загрузке обнаруживает новый том и описывает его в registry (новый параметр HKLM\SYSTEM\MountedDevices\??\Volume{...}). Для этого тома выделяется первая незанятая "буква" и создаётся ещё один параметр (HKLM\SYSTEM\MountedDevices\DosDevices\буква:). Происходит это без вашего участия, причём позаботиться об этом заранее невозможно: уникальный идентификатор тома MS Windows создаёт по каким-то неведомым (мне, во всяком случае) алгоритмам. На новом винчестере все разделы для данной инсталляции Windows — новые, так что вероятность присвоения разделу гордого имени "C: " — 100%-ная. Ничего хорошего из этого не получается.

Первый выход — выполнить для этого раздела восстановление системы с инсталляционного диска. В результате все критичные для загрузки "стрелки" будут переведены на C:. Добившись загрузки, приводим полученную систему к работоспособному состоянию (все дальнейшие операции выполняются уже под целевой ОС):

  • проверяем местонахождение swap-файла — он теперь должен быть на C:;
  • исправляем в registry все ссылки с "E:\" и "e:\" на "C:\". Причём имеются в виду как имена (Value) параметров, так и их значения (Date). Поскольку ссылок этих тысячи, то ни о каких ручных операциях речи быть не может. Все значения исправить одной командой поможет regfind.exe из "Windows 2000 ResKit", а вот для изменения имён придётся загрузить Registrar Registry Manager (Light-версия бесплатна);
  • не могу, к сожалению, гарантировать, что на этом всё кончится: наверняка окажутся программы, заблокировавшие изменение собственных параметров в registry (всевозможные файрволы/антивирусы славятся этим), а также программы, хранящие настройки в конфигурационных файлах (эдакие unix-приверженцы). В любом случае, их число будет много меньше, чем количество исправлений в registry.

Мне, однако, более симпатичен выход иной: создать на новом диске ещё один раздел и в него также скопировать раздел исходный. Диск-то — новый, а восстановление ещё одного раздела с помощью partimage — дело 10..15 минут. Только создавать раздел нужно так, чтобы запущенная с C: ОС полагала его E:. Это не так и трудно. Если C: — системный, то очередной win-раздел получит имя D:, а следующий — как раз E:. Это при условии, что в исходной системе CDROM назывался буквой "постарше". Если же CDROM назывался D:, то первый же, созданный помимо системного, раздел будет E:. Местоположение и размер создаваемых разделов значения не имеют: всё это временно.

Вот, теперь загрузка проходит без заминки: мы удовлетворили противоречивые желания ОС быть и на C:, и на E: одновременно. Система загружается, обнаруживает новый диск и новые разделы на нём, но их имена теперь уже работоспособности системы не препятствуют. Обнаружение нового диска и разделов приводит к появлению в registry ключей вида HKLM\SYSTEM\MountedDevices\??\Volume{...} — по одному на раздел. И это нас устраивает. А вот пресловутое именование заключается в создании соответствующих ключей вида HKLM\SYSTEM\MountedDevices\DosDevices\буква:, и оно-то как раз нас не устраивает категорически. Решение очевидно: удалить или переименовать параметр ...\DosDevices\E: (буква E:, таким образом, "освобождается") и переименовать параметр ...\DosDevices\C: в ...\DosDevices\E:. Вспомогательный раздел (вторую копию) можно, разумеется, теперь удалить.

В обоих случаях полагается, что на новом винчестере создаваемый раздел имеет тот же номер, что и на старом. Если это не так, то потребуется ещё и отредактировать boot.ini (хочется верить, что вам известно назначение этого файла в NT). Альтернатива — использование bootcfg/fixboot из состава Recovery Console XP.

Всё, собственно. Умышленно не привожу командные строки ни для linux, ни для windows: "--help" для первых и "/?" для вторых всегда снабдят необходимой информацией. Если же этого окажется не достаточно, то не стоит утруждать себя: следуйте коммерческой парадигме MicroSoft — полагайте инсталляцию ОС товаром разового использования.




Комментарии

Страницы комментариев: предыдущая :: 1 :: 2 :: 3 :: 4 :: следующая

alien, Fri Apr 25 13:05:12 2008:
2 аноним, четверг, 24 апреля 2008 г. 17:45:07:
>А при чём здесь bios - вообще не понятно Он что, дисковыми разделами интересуется, переименовывает, да ещё их имена в реестр пишет? =) Всё, что биосу интересно - это считать MBR, которой в свою очередь нет дела до буквенных обозначений дисковых разделов.
_________________________________________
Вы прежде чем автору советы давать, матчасть подучите....
аноним, Thu Apr 24 17:45:07 2008:
"Именовать берутся все: BIOS, загружаемые системы, все эти PQMagic-и и Acronis-ы... Нетрудно догадаться, что эти именования часто не совпадают. И вот "буква" таким образом поименованного раздела "впечатывается" в registry эксплуатируемой системы. "
--------


Бред какой то. Ну так не переименовывай ничего PQMagic-ами и Acronis-ами, и будет тебе долгое счастье. А при чём здесь bios - вообще не понятно. Он что, дисковыми разделами интересуется, переименовывает, да ещё их имена в реестр пишет? =) Всё, что биосу интересно - это считать MBR, которой в свою очередь нет дела до буквенных обозначений дисковых разделов.
Короче, автор, пишите лучше про то, как вы не интересуетесь камментами, или про обезьян у вас что-то было...
nscl, Thu Apr 24 12:49:30 2008:
Насчет часа на установку винды - чушь редкостнейшая.
Час - это вы только винду поставите. Голую. Без звука, без сетки, видео 640х480@60Hz, и без программ. И что вы в ней сможете делать ?
Блокнота, паинта и косынки вам хватит ?
В инет ? На ИЕ ? Добро пожаловать в наш ботнет, велкам... =)

И то при условии, что вам не придется искать дрова для вашего SATA / RAID контолллера.
На многих материнках установка каждого драйвера требует ребута. Можете конечно поставить сперва чипсетные дрова - ребут - потом пачкой звук / сетку / видео / 1394 / принтер / directx - и только потом ребут - но это может закончиться печально.
Принтер не увидится сразу (как скажем у HP 1020) - пара ребутов. Затем смотрим в DevMgr и видим, что забыли поставить дрова для модема, тв-тюнера и сканера. Еще полчаса и пара ребутов.
Затем программы. Средств управления софтом в винде по умолчанию нет (а дома вы не станете юзать AD/SMS - неоправданно геморно и сложно), и вы не сможете "одной командой" или одним скриптом поставить сразу MSOffice, Nero, Photoshop, тотал, винрар и еще хучу всего (это не apt и не yum). Часть программ потребует перезагрузки. Часть потребуется вылечить (сами знаете о чем я говорю). Если дома - то есть еще игрухи. DirectX должен быть максимально свежий, иначе хер вам, а не Crysis. Если у вас обрезанный радеон - то желательно вспомнить, какой билд "катаклизма" стоял раньше. Уже встречал драйвера, ставящиеся по 40 минут !! на C2D 6600. Будет !не тот! драйвер - в BioShock/FEAR получите такие артефакты, что псилоцибы оптом отдохнут.
Пользуете лицензионные игры со StarForce - советую снять образ системного раздела ДО ИХ установки. Ghost, еще пара ребутов.
Старфорсы бывают разных версий, и они все кривые. Поставили два разных старфорса - проготовтесь решать проблемы с пишушими приводами. Образ "системы без старфорса" должен быть наготове.
На радостях полезли искать новый драйвер для своего радеона в инете с помощью ИЕ, не вспомнив, что надо поставить файервол и нормальный браузер ? Система не успела скачать апдейты ? Познакомтесь с вирусами. Откатываемся к последнем образу - это быстрее, чем лечить вирусы и чистить реестр. Ставим все то, чего не было в последнем образе.
--- Допустим, что вы еще и разработчик.
классическим LAMP-веб-прогерам проще - denver и вперед. Apache / PHP / MySQL / PgSQL ставить очень просто и приятно. А если нет ? Тогда все веселее...
MS SQL 2005 - еще часик. Заодно вспомните про Windows Installer 3.1, дотнет 2.0 и MSXML.
VS ? Запустили установку ? Есть время пообедать.
веб-разработка под винды ? IIS, прикручивание к нему ASP или PHP. Потом натсройка своих средств разработчки, компоненты и прочее. Ужос на пару дней...
--------
Это так, по мелочи. Просто все к этому ПРИВЫКЛИ.
И это полдня минимум (если своя система, знаешь, что в какой последовательности делать, и оттточено до автоматизма).
А если еще и конфигурации сильно разные ?
sasha_k, Thu Apr 24 09:54:49 2008:
> ну никак вы без нее не можете обойтись.
Что бы ни говорили про винду, как бы ни ругали, винда -- это мейнстрим. Под нее написана туева хуча всего и всякого, да и интеграционные задачи с ее помощью легче решить, потому и приходится программерам-профессионалам сталкиваться с ней или даже не вылезать из нее. Им ведь тоже кушать хочется.
sasha_k, Thu Apr 24 09:51:07 2008:
> а винде эмулятора никсов нет
там (тупо) есть подсистема POSIX.
Alex, Wed Apr 23 22:10:11 2008:
статья многоопытного и мудрого специалиста, ничего не скажу...
только проблема - на уровне "а как бы гланды через анус вырвать"
alien, Wed Apr 23 13:19:24 2008:
2 McFlooder, среда, 23 апреля 2008 г. 11:11:51:
>>> в никсах есть эмулятор винды, а винде эмулятора никсов нет

Можно так же вспомнить о Wubi, такого вынь не сможет никогда:)
chitatel, Wed Apr 23 12:36:24 2008:
Два мелких замечания:
1. Как будто давно уже пишется Microsoft
2. "Почти также упорно MicroSoft сопротивляется" - не следует ли в данном случае писать "так же"?

А в целом - познавательно.
chitatel, Wed Apr 23 12:35:42 2008:
Два мелких замечания:
1. Как будто давно уже пишется Microsoft
2. "Почти также упорно MicroSoft сопротивляется" - не следует ли в данном случае писать "так же"?

А в целом - познавательно.
McFlooder, Wed Apr 23 11:11:51 2008:
>>> в никсах есть эмулятор винды, а винде эмулятора никсов нет

А как же Cygwin?

Страницы комментариев: предыдущая :: 1 :: 2 :: 3 :: 4 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds