Приветствую! Хотел поделиться с вами совсем не тривиальным методом (каким хотелось бы) установки Ubuntu 11.04 (хотя версия, да и сам дистрибутив не имеют значения) на свежекупленного зверька, по имени Asus 1215N (зверек тоже значения не имеет). Речь пойдет скорее не о нем, а о проблеме с которой я столкнулся из-за спецификаций этого агрегата. Все началось с того, что в аппарате отсутствовал так называемый "резак", поэтому выбор носителя дистрибутива автоматически пал на USB флешку. Соответствующий раздел сайта ubuntu.com рассказал подробно, в картинках, как мне это реализовать. Что собственно я и сделал. Скачал утилиту "Universal USB Installer" с сайта pendrivelinux.com (версия 1.8.6.2). Запустил её и выполнил все пункты инструкции. Перезагрузившись я был неприятно удивлен моргающим курсором на черном фоне экрана. Курсор моргал, загрузка не шла! Почему?!
Первый попавшийся ответ в моей голове пенял на флешку. Ею была ADATA (без доп. названия) на 8Gb. Ну да ладно, подумал я и нарыл в кармане еще одну, то же ADATA, только на 16Gb. Эффект тот же! Только на этой флешке был установлен диод показывающий её активность. Теперь вместе с курсором на экране моргал и диод, что привело меня в полное замешательство. Поверхностный поиск (типа: "linux usb черный экран") по интернету, вместе с корпорацией добра, конкретного (помогающего) ответа так и не дал, хотя наличие проблемы было не только у меня. Решил смотреть, так сказать, в начало!
Что у нас происходит сразу после POST (Power-ON Self Test)? Правильно - загрузка MBR (Master Boot Record).
Так как в стандартных средствах MS Windows 7 Home Premium (которая была предустановлена) нет HEX редактора, тем более с поддержкой редактирования физических дисков - пришлось поискать свободное (дабы не ущемлять права имущих) ПО. Первое что у меня оказалось - это HxD. Замечу! Запускать HEX редактор необходимо с правами администратора (не забываем про UAC).
Открываем физический раздел в режиме редактирования:
И смотрим в первые 512 байт (т.е в сектор 0):
Соответствующая статья на Wiki рассказывает нам о том, что первые 512 байт это и есть MBR. Из них:
- 446 байт - загрузчик.
- 64 байта - описание разделов (4 раздела, по 16 байт каждый).
- 2 байта - подпись.
Т.е:
Мое внимание привлекло описание разделов.
Единственный существующий раздел, на котором и лежала вся информация, был не первым как полагается, а четвертым. При этом не был помечен как загрузочный (первый байт 00h, а должен быть 80h)! Зато как загрузочный помечен первый раздел, который вообще не существует как таковой! WTF?!
Как потом выяснилось, виновником оказался UltraISO (версия 9.3.6.2750). Которым до этого записывался Alkid LiveCD на ту же флешку. Перед записью ISO образа он изменил 0 сектор и сделал раздел 4-м. Universal USB Installer, в последствии, не смог правильно обработать эту ситуацию и мы получили несуществующий активный раздел.
Казалось бы, не существует раздел - выведи сообщение об ошибке. Почему нет сообщения? Да потому что ошибки нет! MBR загружается. Загрузчик находит единственный помеченный (80h) раздел. Считывает адрес первого сектора этого раздела. В нашем случае это сектор 0. Загружает загрузчик находящийся в этом секторе и передает управление ему. Т.е. бесконечно загружает сам себя!
Исправить можно двумя путями:
- Поставить метку 80h четвертому разделу, не забыв убрать её у первого. В противном случае вы получите сообщение "Invalid partition table". Это поможет, но только до следующего опыта с LiveUSB. Т.к. к помеченному четвертому, вы опять получите помеченный первый и сообщение об ошибке.
- Сделать четвертый раздел первым! И это правильный способ!
Через копи-паст или ручками - это уже вам решать. Для забивки нулями можно использовать функцию "Fill selection", которая так же доступна через контекстное меню. Все данные останутся в целости и сохранности!
У меня получилось так:
И зачем нам специализированное ПО для нарезки разделов?! Сохраняем и перезагружаемся в дружелюбный интерфейс Ubuntu. На этом все. Надеюсь кому-нибудь помог!