NetBSD на Compact Flash

Калегин Сергей Николаевич
(август 2011 года)

В этой статье я хочу рассказать о том, как сделать загрузочный (спасательный) диск из обычной flash-карты, которые у многих лежат без дела и люди не знают куда их приспособить. Ниже будет представлен один из вариантов использовать эти носители как реаниматоры.
Итак. На сегодняшний день flash-накопители стали одним из самых популярных типов носителей информации, их выпускают в различных форматах и для разнообразных интерфейсов. Самыми популярными являются USB-накопители, так называемые "USB-флэшки" (или просто "флэшки"), и flash-карты для различных мультимедийных устройств, например, фотоаппаратов, видеокамер, медияплееров и т.п. Причём по скорости работы и техническим характеристикам они уже приближаются к медленным жёстким дискам, а значит флэшки вполне можно использовать в качестве основных и дополнительных накопителей информации в современных компьютерах. И многие энтузиасты (и не только) давно экспериментируют в этом направлении. Например, на базе флэшек собирают RAID-массивы, делают из них запасные или альтернативные "HDD" или даже используют их в качестве основных (системных) дисков в специальных компьютерах (в сетевых хранилищах данных и т.д.). Описания таких сборок и разработок можно найти на просторах Интернета, а здесь речь пойдёт немного о другом.
Учитывая всё выше сказанное, я решил сделать себе загрузочный диск из старой карты Compact Flash (CF) Silicon Power 200x 4GB (хотя можно брать и другие типы и модели flash-карт), так как у неё уже имеется поддержка UDMA (как у HDD) и достаточная скорость работы для нормального функционирования операционной системы. Но если даже такой карты под рукой нет, стоят CF-карточки сейчас недорого и приобрести их может любой желающий в любом городе. Плюс ко всему, CF-карты поддерживаются многими мобильными компьютерами, читаются практически в любом картридере и для карточек этого типа существует множество различных переходников типа "CF to IDE", "CF to SATA", "CF to PCMCIA" и т.д. Таким образом, данный "загрузочный диск" может быть универсальным реаниматором или же альтернативным загрузочным устройством для большинства современных персональных компьютеров, да к тому же очень надёжным и портативным.
Для создания своей загрузочной CF-карты я использовал самые простые и доступные средства:

  1. Сама старенькая Compact Flash Silicon Power 200x 4GB (хотя лучше выбрать карту побыстрее);
  2. Самый простой и дешёвый картридер с возможностью чтения таких карточек (во многих компьютерах, он есть изначально);
  3. Операционную систему (ОС) NetBSD 5.0 (хотя это непринципиально).
  4. Программу управления вируальными машинами VMWare 7.1 (можно взять и другое ПО Oracle VM VirtualBox прим. редактора). Хотя, вместо инсталляции VMWare можно просто взять установочный диск операционной системы, однако это потребует наличия CD/DVD привода (а он есть не везде) и дополнительных затрат.

Как видите, ничего дорого и сложного не требуется, так как оборудование довольно популярное и остоит копейки, ОС NetBSD распространяется свободно и абсолютно бесплатно, а VMWare можно скачать с официального сайта и использовать в триальном (тестовом) режиме некоторое время (или Oracle VM VirtualBox прим. редактора). Более того, NetBSD считается самой универсальной ОС в мире и может работать с различными компьютерными платформами и архитектурами, что является большим плюсом для диска-реаниматора. А программа VMWare разрабатывается для различных операционных систем и может быть запущена как под управление ОС Windows, так и Linux (и других Unix-систем). Кроме того, NetBSD, так же как OpenBSD, FreeBSD и т.п., очень быстро ставится (чуть больше минуты), что для экспериментов имеет большое значение, а дистрибутивный диск (образ) этой системы весит всего несколько сотен мегабайт и легко скачивается с любого FTP-сервера.
Теперь приступаем к самому интересному - установке и настройке всего этого добра. Ну на подключении картридера и самой flash-карты я останавливаться не буду, так как это, обычно, проблем не вызывает, а вот установку и настройку виртуальной машины стоит рассмотреть более обстоятельно, так как далеко не у всех есть опыт работы с подобным ПО.
Для начала, нужно скачать из Интернета (или найти где-то на дисках) дистрибутив VMWare и установить данную программку в свою систему. Далее, заходим в меню "файл" и создаём новую виртуальную машину (виртуальный компьютер) для установки NetBSD. При этом запускается мастер установки (создания) новой машины, который задаёт простые вопросы о том какую ОС мы будем ставить, в какой каталог и т.п. Здесь самое главное для нас - это выбор носителя (диска), на который будет устанавливаться система. VMWare позволяет либо создать новый виртуальный диск (обычный файл-образ диска) либо использовать уже существующий виртуальный диск (например от старой или другой виртуальной машины), или же, можно использовать реальный (физический) диск или раздел (то что нам нужно). Мы выбираем именно последний вариант и указываем нашу CF-карту (как правило последний диск в списке). Хотя разработчики это делать не рекомендуют ввиду опасности повреждения логической структуры диска, но для нас это не имеет значения, так как наш диск будет стёрт целиком и переразмечен. Остальные вопросы мастера можно игнорировать (просто жать "далее"), ведь работать с этой виртуальной машиной мы не собираемся, она нужна только для установки ОС. После завершения установки мы получаем новый виртуальный компьютер со своим набором "железа", своим BIOS-ом и т.д. А самое главное то, что в качестве основного (системного) диска у него установлена наша CF-карта. При желании, большинство настроек и состав виртуального оборудования можно поменять в свойствах виртуальной машины.
Теперь, когда у нас есть виртуальный компьютер, к которому подключена flash-карта, нам нужно скачать дистрибутив операционной системы NetBSD. Для этого можно зайти на официальный сайт http://netbsd.org/ или же найти его на других серверах (например, можно сделать поиск по серверам FTP). Для простоты я скачал загрузочный ISO-образ для своей платформы (IBM PC i386), который сразу же можно подключить к нашей виртуальной машине в качестве виртуального диска (ну или записать на CD). Для подключения его к виртуальному CD-ROM-у достаточно открыть свойства этого устройства и указать, что мы будем использовать ISO image (образ) NetBSD_5.0.iso (название файла образа может быть любым).
Всё, переходим к завершающему этапу - установке самой ОС. Для удобства, всё описание процесса установки я разбил на пункты, соответствующие экранам (смотрите скриншоты), выводимым на монитор компьютера.

1) Запускаем виртуальную машину и грузимся с нашего установочного образа. На первом экране появляется меню с предложением выбрать тип установки или выйти в командную строку. Мы выбираем первый пункт (Install Netbsd) и жмём клавишу Enter.

2) Далее запускается программа-установщик sysinst и предлагает выбрать язык надписей для последующей установки, а также даёт комментарии по работе с менюшками. Здесь обратите внимание на то, что перемещаться по меню можно с помощью нажатия букв, которые указаны возле каждого пункта, сочетаний клавиш Cntrl+N и CNTRL+P для перехода на следующий или предыдущий пункт соответственно. Кроме того, будут работать и обычные курсорные клавиши (стрелочки) на клавиатуре, если они есть. Итак, я выбрал первый пункт, чтобы все надписи при установке шли на английском языке.

3) Далее предлагается выбор раскладки клавиатуры, я оставил по умолчанию (unchanged).

4) На этом подготовка к работе sysinst закончена и выдаётся главное меню программы, где можно начать установку, сделать обновление системы, вызвать какие-то утилиты и т.д. Мы выбираем установку (первый пункт) и жмём Enter.

5) На следующем экране даётся пояснение о том, какие шаги нужно выполнить для установки ОС NetBSD и спрашивается будем ли мы продолжать. Выбираем Yes и идём дальше.

6) Затем sysinst показывает какие накопители были обнаружены и предлагает использовать один из них. В моём случае накопитель всего один, так что выбор небольшой. Кстати, обратите внимание на название диска. В операционных системах BSD свои обозначения и зависят они от интерфейса подключения накопителя и от самой ОС. В NetBSD диски могут обозначаться как wd0, rwd0, sd0, rsd0 и т.п. Здесь цифра указывает на номер диска в системе (начиная с нуля), а за ней может следовать буква, обозначающая логический диск (партицию с файловой системой) или раздел на данном носителе информации, например: wd0a - первый логический диск (или раздел) на первом носителе, wd0b - второй логический диск и т.д.. В моём случае, диск был опознан как sd0. Нажимаем Enter для установки ОС на этот диск.

7) Теперь нам нужно выбрать тип установки дистрибутивных пакетов ПО. Всего три варианта: Full, Minimal и Custom installation (полная, минимальная и выборочная установка соответственно). Мы выбираем последний пункт для выборочной установки и переходим на следующий экран.

8) Тут мы должны указать нужные нам дистрибутивные пакеты. Выбор осуществляется с помощью нажатия клавиши Enter на соответствующем пункте. Я отметил почти все, кроме игр (Games), текстовых редакторов (процессоров) и графической среды (X11), которые на спасательном диске ни к чему. Теперь переходим на последний пункт и нажимаем Enter, подтверждая установку выбранных пакетов.

9) Далее, инсталлятор показывает геометрию системного диска, как он её видит, и просит подтвердить или ввести её вручную. В данном случае я согласился с представленной геометрией.

10) Теперь sysinst даёт пояснения по разметке диска и объёму разделов для установки NetBSD. Если выбрать пункт "Use the entire disk", то вся информация с него будет стёрта и он будет переразмечен. При желании, можно выбрать первый пункт меню и отредактировать таблицу разделов, оставив на диске уже существующие слайсы (разделы) и создав новый для нашей операционной системы. Однако, в данном случае, у нас такой необходимости нет, поэтому выбираем второй пункт меню для использования всего диска под NetBSD. Нажимаем Enter для продолжения.

11) Далее нам предлагают переписать главную загрузочную запись (MBR) нашей flash-карты и установить в неё загрузочный код для старта NetBSD. Соглашаемся и идём дальше.

12) Теперь инсталлятор нам поясняет, что нужно сделать логические диски (партиции) в созданом разделе NetBSD и точки монтирования для доступа к ним. Делается это с помощью программы disklabel editor. Кроме того, здесь показана доступная ёмкость нашего диска (CF-карты) и минимальные объёмы, которые требуются для установки ОС NetBSD. В моём случае, доступный объём диска составляет аж 3831 мегабайт, а для базовой установки NetBSD достаточно всего 288 мегабайт без графической системы X Window (графического интерфейса) и 338 мегабайт с установкой графики. Так что у меня места более чем достаточно. Тут же задаётся вопрос, хотим ли мы сами установить размеры логических дисков с привязкой к точкам монтирования или же будем использовать уже существующую разметку. Выбираем первый пункт для редактирования логической структуры раздела и нажимаем Enter.

13) Далее нам даётся список основных точек монтирования с указанием размеров в мегабайтах, а в нижней строке показано сколько осталось свободного места. Для изменения размера любой партиции достаточно перейти на неё курсором и нажать клавишу Enter, затем ввести нужный размер и опять нажать Enter. Если оставить для партиции размер 0 мегабайт (как у меня для /home), то она создана не будет (то есть просто появится соответствующая папка в корневой файловой системе и всё). После окончания всех манипуляций выбираем последний пункт (Accept partition sizes) и жмём Enter.

14) На следующем экране просто ещё раз проверяем созданную таблицу (разметку) и подтверждаем её верность выбором последнего пункта (Partition sizes ok). Здесь же показано какие файловые системы будут созданы на соответствующих партициях (логических дисках). В данном случае это FFS первой версии.

15) Далее запрашивается метка диска. Это может быть любое сочетание букв и цифр.

16) Всё, сбор информации закончен. Все нужные сведения установщик получил и теперь готов начать разметку (разбивку) нашего диска (sd0). Но, на всякий случай, нам даётся последний шанс отменить установку (если мы вдруг вспомнили, что, например, на этой карточке у нас осталась нужная информация). И запрашивается подтверждение начала переразметки диска и установки ОС. Если всё в порядке, выбираем "Yes" и жмём Enter.

17) Далее просто показывается какие логические диски созданы (Обратите внимание на их обозначения!) и с какими параметрами они форматируются.

18) После окончания разметки и форматирования мы должны указать место расположения загрузочного блока (bootblock). Здесь есть возможность использовать удалённое (сетевое) администрирование, однако нам это не требуется. По умолчанию будет использован стандартный бутблок BIOS. Соглашаемся с первым пунктом и выбираем Exit для продолжения установки.

19) Теперь sysinst сообщает нам, что первая часть установки (то есть разметка диска и запись в MBR) закончена и можно приступать к установке дистрибутивных пакетов (filesets). Для удобства наблюдения за этим процессом нам предлагается выбрать строку индикации (progress bar) или же наоборот, отключить её (Silent) для экономии ресурсов системы, а также выводить название каждого файла отдельно. Я выбрал первый вариант.

20) Далее нужно указать с какого источника мы будем копировать эти дистрибутивные пакеты. В нашем случае это CD-ROM.

21) На следующем экране мы видим как инсталлятор определил виртуальный CD-ROM и из какой папки он собирается брать дистрибутивные пакеты. Если название устройства или путь к каталогу пакетов неверен, можно его подкорректировать простым нажатием клавиши Enter на соответствующем пункте. Но в моём случае это не требуется, так как CD-привод у меня один, а образ установочного диска был скачан с официального сайта ftp.netbsd.org. Кстати, тут следует обратить внимание на обозначение оптического диска в системе NetBSD (cd0a), это потом пригодится при монтировании. Для начала установки пакетов выбираем пункт "Continue" и нажимаем Enter.

22) Далее на экран выводится информация по установке дистрибутивных пакетов.

23) По завершению установки появляется победная надпись о том, что теперь ОС NetBSD может грузиться с нашего диска (то есть с нашей CF-карты). Осталось только сделать первоначальную настройку операционной системы. Нажимаем Enter и начинаем настраивать.

24) В первую очередь устанавливаем временную зону для нашей системы. Например для московского времени нужно выбрать Europe/Moscow.

25) Затем выбираем алгоритм шифрования паролей. Так как у нас обычный диск-реаниматор, то никаких особых требований к безопасности хранения паролей здесь не предъявлятся. А значит можно выбрать любой пункт меню или оставить по умолчанию.

26) Теперь нам предлается установить пароль для администратора (пользователя root) операционной системы. Выбираем "Yes" и переходим к следующему экрану.

27) Далее устанавливаем этот пароль и вводим его подтверждение. Обратите внимание, что всё вводится "в слепую", то есть на экране при этом никакие символы не отображаются.

28) После установки пароля root-а выбираем командный интерпретатор (shell) для этого пользователя. По умолчанию предлагается /bin/sh.

29) Всё, можем собой гордиться. Теперь установка и первоначальная настройка ОС NetBSD полностью завершена. Для получения дополнительной информации нам рекомендуют почитать файл INSTALL и man по afterboot(8) (вызывается командой: man 8 afterboot). А для дополнительной конфигурации системы и запуска различных служб (демонов, в терминологии UNIX) можно воспользоваться файлами /etc/rc.conf (файл дополнительных настроек) и /etc/defaults/rc.conf (файл настроек по умолчанию). Нажимаем Enter и получаем поздравление по поводу успешной установки операционной системы NetBSD.

30) В конце-концов мы опять возвращаемся к главному меню программы sysinst, но уже без коментариев. Если её предполагается запускать в дальнейшем при работе с реаниматором, то можно выбрать последний пункт для завершения работы sysinst (при этом запустится командный интерпретатор) и скопировать её на наш диск (находится она прямо в корне виртуального CD). А для проверки работоспособности свежеустановленной ОС выбираем пункт "Reboot the computer" и перезагружаем виртуальную машину. При этом, для верности, лучше отключить виртуальный CD-ROM или "извлечь" из него установочный iso-образ. Сделать это можно в строке состояния (внизу) справа щелчком по иконке оптического привода или же через вернее меню виртуальной машины.

После перезагрузки виртуального компьютера NetBSD должна стартовать уже с нашей загрузочной Compact Flash. Если загрузка ОС прошла нормально, значит у нас всё получилось и теперь мы можем попробовать загрузить с неё реальный (физический) компьютер. Для этого нужно выключить виртуальную машину и закрыть программу VMWare, а затем перегагрузиться. В процессе перезагрузки компьютера нужно вызвать загрузочное меню (popup menu или boot menu), в котором выбирается загрузочный диск, и найти там свою flash-карту. Обычно это делается в первые секунды загрузки машины при выводе второго отчётного экрана POST (где показаны тип CPU, объём оперативной памяти, модели носителей и т.д.) или же графической заставки от производителя материнской платы. Чаще всего эта менюшка вызывается нажатием одной из функциональных клавиш (F1, F2, F8, F9, F11) или же клавишей Esc, хотя могут быть и другие варианты. Если загрузочное меню вызвать не удалось, то нужно просто зайти в настройки CMOS Setup (BIOS) и поменять последовательность загрузки (точнее опроса носителей при загрузке). Первым устройством должна стать CF-карта (в разных программах BIOS-а она может обозначаться по-разному).
Ну вот и все хитрости, которые необходимо знать при создании загрузочной флэшки-реаниматора. Разумеется это только начало большого дела. Дальше потребуется поставить и протестировать нужное ПО, адаптировать систему для загрузки на разных компьютерах и т.д., но эти вопросы выходят за рамки данной статьи. При желании, по такому же принципу можно делать и другие загрузочные устройства и на базе других операционных систем, главное с чего-то начать.

Дополнительные материалы
Ваша оценка: Нет Средняя: 4.4 (18 голосов)

Последние статьи

Новые комментарии

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer