(Notes) Notes (2010 год)

Загрузочные компакты и флешки (bootable LiveCD and bootable USB)

usb flash

На этой страничке я хотел просуммировать полезную информацию по загрузочным компактам и USB-флешкам. Вероятно собранные вместе полезные ссылки, скрины и комментарии профессионального программиста могут быть многим полезны.

Флешка - это супертехнология, прочно вошедшая в наш быт. В Москве например, флешка Apacer, емкостью 8ГБ стоит меньше тысячи рублей - а у меня еще сохранилась флешка 0,5 ГБ, купленная мною за $350. Развитие технологий позволяет купить одну такую флешку и перепробовать ВСЕ существующие в мире среды работы и операционные системы даже без виртуализации и не трогая основную рабочую среду на винчестере. Тем более флешки работают бесшумно, а не скрипят как CD и Floppy.

Практически у всех Линуксов загрузочная флешка и является непосредственно рабочей средой. Никакого как такового винчестера непосредственно для работы не требуется. Собственно он нужен только потому, что винчестер работает быстрее компакта или флешки и позволяет сохранить некие свои предпочтения по настройкам или файлы на локальный диск. Но никто не мешает сохранить свои данные на удаленных сетевых ресурсах. При проектировании LiveCD есть много различных подходов, например работать в минимально возможной памяти кампутера или наоборот вычитать все что можно в ОЗУ и не обращаться к компакту или флешке при работе вообще. И конечно, целевое назначение LiveCD совершенно разное. Cамый большой список загружаемых компактов, что я видел, состоит из более чем 300 LiveCD - http://livecdlist.com/.

Тысячи и тысячи программистов годами изготавливали и отлаживали загрузочные CD и USB для совершенно любых целей - от восстановления системы и фаерволом до игровых компактов. Думаю, не найдется человека, который бы не использовал бы hiren's boot cd, acronis или ghost для снятия копий своей системы. Вот список самых популярных LiveCD на русском языке - http://ru.wikipedia.org/wiki/LiveCD и на английском http://en.wikipedia.org/wiki/LiveCD.

Флешки с усеченными загружаемыми Линуксами уже лет пять как ставят на многие более ли менее продвинутые материнские платы. Обычно такая флешка содержит небольшой линукс с одним PHP-сайтиком, который управляет вентиляторами и блоком питания кампутера. Подключается этот отдельный микрокампутерчик для управления основными кампутером через отдельный разъем RJ-45 и работает всегда независимо от основного мощного блока питания. Уже лет пять так делает например Hewlet Packard. Огромное количество современных материнских плат комплектуется сразу операционной системой в виде загружаемой флешки с VmWare. Все крупные производители материнок выпускают также загружаемые флешки и CD для диагностики своих материнок.

Есть и совершенно уникальные загрузочные дискеты, которые не столь популярны, но меня лично поражают до глубины души. Например операционная система Menuet OS, от которой у меня выкатываются от удивления глаза и так и не закатились до сих пор за много лет наблюдения за этим проектом. Может быть дело здесь в том, что я писал сам на ассемблере и сам писал загрузчики операционок - поэтому я настолько удивлен талантом программистов Menuet OS. Даже для совершенно постороннего лошары, если он хоть пять секунд задумается - станет ясно невероятное превосходство Menuet OS над грязными проделками империи Билла Гейтса. У Menuet OS идея - достичь красоты и элегантности своей системы, а идея Билла Гейтса - купить за минимальную цену какой нибудь мусор у индусов и провалить его за максимальную цену. Результат налицо - одна загрузочная дискета Menuet OS (на ней находится также полная среда работы программиста) на голову превосходит несколько DVD дисков с какими-то помоями индусов, называемыми Windows 7 (и еще штук пять DVD с какими-то помоями нужно для среды работы программиста). И плюс каждый сервис-пак догружает еще по гигабайту какого-то мусора с очередными ошибками. Память кампутера забивается этим индустским мусором, кампутер тормозит, тупит и перегревается. Кампутер работает все медленнее и медленнее - доходы Билла Гейста все увеличиваются и увеличиваются, а люди все больше и больше осознают себя идиотами.

Возникает естественный вопрос - а почему же помои Билла Гейтса не копируются так же просто, как Линукс - ведь в сущности Windows - это сворованный и слегка косметически переделанный OpenSource-код. Ответ прост - Билл Гейтс хочет оставаться самым богатым человеком планеты и желает получать деньги с каждой копии Windows. Более того, он даже желает получать деньги даже за право информационного коннекта из-вне к его программам, установленным на Windows. Например восемь тысяч долларов с каждого, кто попытается приконнектится к его Windows-серверу, 500 долларов с каждого, кто попытается приконнектится к его Team Foundation Server, 50 доллларов с каждого, кто попытается войти в сервер терминалов на его виндузне. Поэтому билогетсовские индусы не только косметически заменили иконки в OpenSource-коде, но и испоганили более основательно чистый OpenSource-код всякими заморочками, препятствующими свободному копированию софта и позволяющим Биллу Гейтсу зарабатывать. И сколько Билла Гейтса не ловили и не наказывали (на миллиард долларов, на полмиллиарда долларов) - он по прежнему остается пока на свободе и продолжает воровать и портить OpenSource-код, встраивать в него защиту от копирования, выдавать этот код за свой личный и по-прежнему пытается зарабатывать даже не только на каждой операции копирования софта - но даже на процессах информационных контактов между программным обеспечением.

Больше всего меня лично поражает в этой ситуации то, что многие считают существование в информационной индустрии такого паразита, как Билл Гейтс - полезным. Якобы то, что он пытается зарабатывать на каждом контакте программного обеспечения между собой (например коннекте клиента сервера терминалов к терминальному серверу) - якобы существование этого паразита увеличивает капиталлизацию в IT-отрасли и якобы это автоматически увеличивает зарплату IT-персонала. Не знаю, как насчет зарплаты в IT - по-моему это увеличивает только доходы мусоров, пытающихся все это уконтроллировать.

Загрузчики

Итак, чтобы создавать LiveCD - надо понять как работает загрузка операционной системы. Жесткий диск начинается с сектора MBR (Master boot record) - в котором описана геометрия диска, его разделы и какой раздел диска назначен активным. BIOS вычитывает эти данные и передает управление загрузчику операционки - на нулевой сектор нулевого цилиндра активного раздела. Загрузчик считывает оглавление файловой системы своего раздела, находит там меню загрузки и предлагает пользователю выбор вариантов загрузки - либо даже может без выбора пользователя загрузить операционную систему из своего раздела.

Увидеть MBR глазами просто - надо средствами физической работы с диском скопировать ее в файлик и посмотреть ее любым бинарным редактором. На скринах вы видите (последовательно) - я скопировал первую запись с флешки с несколькими разделами в файлик, посмотрел на MBR своей флешки, на третьем рисунке MBR моего Hard-диска, четвертый и пятый скрины - это диалоги настройки загрузчика GRUB, находящегося в активном разделе моего hard-диска.

На четвертом скрине вы можете видеть как каждый пункт меню загрузчика GRUB соответствует загрузке либо с другого раздела диска, либо с того же раздела, но с некоторыми параметрами. На последнем скрине вы можете увидеть кроме второй части главного меню GRUB также структуру загружаемой флешки. Кроме загрузчика GRUB вы можете видиеть там еще большой файл размером 655 мегабайт - это сжатый образ операционной системы Linux. Загрузчик раскроет его в RAM-диск в памяти и загрузится с этого RAM-диска - так же как BIOS загружается с раздела жесткого диска.

Загрузчиков операционок существует великое множество (может даже еще сохранились и какие-то написанные лично мною загрузчики), но отдельные специальные загрузчики, как у Menuet OS - мы в этой краткой заметке рассматривать не будем. Основной список самых популярных загрузчиков приведен здесь Comparison of boot loaders. Есть и много других загрузчиков, не упомнутых в этом полезном списке, например дискетный загрузчик MS DOS, который вписывает на загрузочные дискеты Windows. Есть и тысячи других коммерческих загрузчиков, например EZB. Самые популярные из популярных загрузчиков такие: NTLDR, SYSLINUX, GRUB, LILO,

Если вы записываете готовый ISO-файл на компакт, то как правило, никаких специальных действий не требуется - загрузчик компакта уже хранится в файле ISO. И если вы записываете уже подготовленный для загрузки с USB ISO-образ, тоже никаких специальных действий не требуется - просто копирование. А вот если вы хотите преобразовать загружаемый CDROM в загружаемую USB-флешку, то загрузчик придется заменить.

Существует множество программ, для автоматизации добавления/замены загрузчиков при создании загружаемых USB-флешек. Самая популярная прога - UNetbootin. Эта совершенно бесплатная и кроссплатформенная прога умеет не просто взять из сети два десятка различных дистрибутивов линукс (или готовый ISO-образ с диска), и умеет создать из этого не просто компакт, а именно загрузочную флешку, вписав нужный загрузчик.

Кроме того надо понимать, что не все кампутеры умеют грузится с USB - в BIOS должна быть предусмотрена такая возможность (это показано на скринах ниже).

Простой пример

Если вы только хотите познакомится c более продвинутыми технологиями, чем у Билла Гейтса, то можно начать знакомство с Knoppix. Это отличный проект, который отлаживается уже более 10 лет. Knoppix тоже имеет средства для самостоятельного создания собственных загружаемых компактов и флешек с собственным комплектом нужных программ - не хуже чем у SUSE.

Вы можете скачать ISO-файл и записать его рекомендованной выше прогой UNetbootin на флешку буквально в два тычка мышкой. Загрузившись с этой флешки вы увидите не просто какое-то сырье с помоями индусов, а хотя-бы прикоснетесь к современным технологиям.

У меня на ноутбуках Knoppix сразу после загрузки работает в графике XGL - те рабочие столы переключаются поворотом вот так. Поскольку современные технологии выглядят диковато для тех, чей кругозор ограничен билогейтсовской платформой, поясняю как переключить рабочий стол - зажимаете его левой кнопкой мыши и резким движением вправо или влево выталкиваете его за границы экрана. Куб рабочего стола поворачивается другой гранью. Можно зажать за заголовок любое открытое окно и тоже резко вытолкнуть его мышкой на другую грунь куба - на другой рабочий стол. Так умеют работать любые линуксы, в том числе и SUSE - для этого надо просто доставить в систему пакет XGL-графики и чтобы этот пакет опознал видеокарту.

Инсталляция

Помимо запуска своих программ в изолированной среде, восстановления системы, работы во встроенных бездисковых системах и тд., LiveCD - это быстрая и надежная инстраляция Linux на кампутеры. Базовая инсталяция с CDROM может занять не менее получаса и кроме этого требует наличия двух вещей - чистой болванки и безупречно работающего DVDROM. Особенно в ноутбуках последнее проблематично - лично мне такое практически не встречалось. Причем при наличии нечитаемого байта в 4,7 ГБ дистрибутива процесс инсталляции CDROM не отпускает, повторить установку сбойнувшего пакета нельзя - приходится безуспешно начинать все сначала в надежде что диск все-таки прочитается. Установка Линукса становится столь же гиморойной как установка виндузни.

Поэтому инсталяция Linux с флешки - в которой точно не будет сбоев и которая проходит обычно секунд за 10-20 - это замечательное применение LiveCD. Для этого надо с любого зеркала OpenSuse http://mirrors.opensuse.org/ загрузить например openSUSE-11.1-KDE4-Reloaded-LiveCD.i686-4.3.1-Build4.1.iso, записать этот ISO-шник на флешку (а в Linux это делается просто командой DD) и загрузить свой ноутбук с этой флешки.

Нужно не более 2-х минут чтобы перенести и проинсталировать 935 программных пакетов OpenSuse LiveCD с флешки на ноутбук:

После перезагрузки кампутера уже с винчестера c вновь установленной системы у вас даже сохранятся сетевые и прочие настройки, которые вы внесли при загрузке с LiveCD. На мой взгляд, кто освоил эту технологию инсталляции Linux за две минуты и c гарантией от сбоев болванки - тот уже никогда не вернется к классической CDROM-инсталляции, сделанной как клон ущербной Windows-инсталляции.

За эти две минуты на ноутбук установилось не просто какое-то сырье c помоями индусов, куда надо за деньги еще дополнительно догружать офис и все остальное - с OpenSuse LiveCD установилось почти тысячу программных пакетов (а полный инсталляционный 4,7 GB DVD содержит 2676 программных пакетов), включая OpenOffice с векторной графикой, несколько браузеров, включя Firefox, терминальный сервер и клиент, почтовые клиенты, видеоплееры, флешплеер, наборы кодеков, сдедства записи аудио-компактов, всякие радакторы и просмотровщики фотоальбомов, хайпервизор для запуска виртуальных машин (то же что и Hyper-V, только без глюка "синтетическая мышь"), поддержка сканеров, Wifi, звуковых карт, камер, SCSI-дисков, всевозможные сервера типа SSH, SMB, ALSA (радиотрансляция в сеть), почтовый сервер postfix (ничем не хуже MS Exchange Server), клиенты ко всевозможным серверам, начиная от LDAP (клиент для домена Windows) и NFS (более продвинутое чем SMB расшаривание файлов в сеть), файервол, бесчисленное число всяких мелких утилиток типа MC (клон Norton Commander), управление всякими ключами шифрования типа WPA (для Wifi) и Kerberos, всякие драйвера форматирвоания для принеров, средства аудита (типа ProcMon от Sysinternals), всевозможные ран-тaйм среды типа JAVA и Python, даже средства работы программиста на C И Perl.

Дополнить эту стандартную инсталляцию еще любым из 9239 программых пакетов из официального репозитария - теперь можно буквально в один тычок мышкой (как впрочем и пакетами, не находящимися в официальном репозитарии). Но для каких-то применений - даже 935 программных пакетов слишком много. Если есть смысл экономить дисковую память и ОЗУ - можно самому создать вполне функциональный LiveCD, размером скажем 30 мегабайт. С другой стороны, может потребоваться совершенно иной функционал, чем скомплектован в стандартной инсталяции из 2767 пакетов или (935 пакетов на LiveCD) . Такой, специально скомплектованный Linux, прошит например в медиаплеере, который я описал здесь - Эра цифрового TV. Как самому создать такой упрощенный линукс - я расскажу чуть дальше.

Копии системы

Теперь посмотрим, как загружаемые флешки можно использовать для клонирования своей системы, бекапирования, создания контрольных точек и быстрого восстановления. В принципе это можно сделать и в виндузне, для этого хорошо подходит Acronis true image server - который умеет выполнять эту операцию на ходу - при работающей виндузне. Но на линуксе это выполняется естественным образом - встроенной командой DD, которая и предназначена как раз для копировоания разделов диска и целых дисков.

Самым естественным образом это делается так: загружаемся с флешки, заходим в Yast-partitioner , чтобы уменьшить место для бекапа. Создаем на диске дополнительный раздел и откладываем туда полный клон раздела диска. Чтобы его восcтановить - надо всего-лишь опять загрузиться с флешки, и поменять местами InputFile и OutputFile в команде DD. Для экономии места бекап можно сжать. Размер своего рабочего раздела после бекапирования нужно восстановить. На личных кампутерах с линуксом я часто работаю в одном разделе диска - так многое делается проще и меньше вероятности исчерпания места. Если у вас несколько разделов - то эту операцию надо повторить для каждого раздела.

Собираем операционную систему сами

У всех Линуксов существует пакет (технология, программа), который позволяет сохранить свои предпочтения и на их основе создать собственный компакт (или флешку). Именно поэтому существуют сотни популярнейших LiveCD и тысячи специализированных LiveCD для материнок. Например в OpenSuse 11.1 технология создания LiveCD называется KIWI - она позволяет создавать свои собственные загружаемые USB-флешки или загружаемые LiveDVD.

У OpenSuse 11.2 направление формирования собственных LiveCD развилось еще дальше - можно скомплектовать свой собственный дистибутив на специальном сайте для онлайновой сборки заказных дистрибутивов - http://susestudio.com/. Естественно, все это делается не только для получения неких стандартных дистрибутивов с какими-то общими программами, но и свою собственную программу вы можете запустить в автостарте с собранной загружаемой флешки. В тех случаях когда .NET-программист сумел расширить свой кругозор и выйти за рамки секты мазохистов - любителей платежей Биллу Гейтсу - c загружаемой флешки можно запустить свои собственные .NET Framework программы - с командной строкой GoogleTranslate - англо-русский онлайн переводчик или с GUI SNMP-тестер сетевых устройств. GUI-программа на Windows.Forms для Linux.

Самое удивительное, что на формирование своего дистрибутива в http://susestudio.com/ уходит минутка, в том время как формирование дистриутива с помощью KIWI занимает многие часы. Это остается для меня неразгаданной загадкой:

В качестве компьютера при работе под Linux можно использовать не только привычный ящик с процессором X86, но можно взять любое крошечное бездисковое безвентиляторное устройство, например Soekris или Colibri, за несколько минут собрать на той же http://susestudio.com/ операционную систему в необходимой комплектации, доукомпектовать ее своей программой (в том числе на .NET Framework) - загрузить ее в память крошечной материнской платы и получить например обычный терминал, кассу, утюг или холодильник с экранным меню. Или создать обычный Web-сервер с сайтом на Wordpress (именно этот пример выложен на SuseStudio) - технологически это и есть сборка загрузочной USB-флешки. С другой стороны самые мощные в мире серийные суперкомпьютеры IBM/390 серий G5/G6/G900, производительностью более 1000 MIPS - тоже работают именно под Linux. Терафлоповые суперкампутеры можно так же точно загрузить с флешки, только на них разумнее использовать более быстрые механизмы доступа к памяти.

Большие флешки с несколькими разделами

Cегодня флешки стали настолько большими - 32 GB, 64 GB (кто больше?), что использовать такие большие флешки для одного LiveCD становится нецеллесообразным. Для того, чтобы добавить на флешку новые разделы EXT4 - надо запустить cfdisk, нарезать новые разделы, отформатировать их. Дополнительные разделы надо смонтировать и их можно использовать просто как обычные флешки для хранения данных (например для образов своей системы).

Виндузовый Disk Manager тоже видит разделы на флешке, но эксплорер линуксовую файловую систему систему EXT4 не опознает, его заклинивает и он требует переформатировать разделы флешки - так что будьте осторожны. Линукс же при подключении такой флешки выдает предупреждении об одновременном подключении сразу нескольких USB-CDROM (что хорошо видно на рисунке выше).

Многие умельцы записывают на одну большую флешку десятки разнообразных LiveCD - для этого надо настроить GRUB для загрузки со следующих разделов флешки.

Бытовые приборы с загружаемым Linux

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

Для интересующихся созданием LiveCD существует множество специализированных форумов, где вы можете задать любые вопросы посвященные LiveCD - например http://www.boot-land.net/forums/.


А если вы только планируете приступить к знакомству с Linux - то добро пожаловать на мою страничку Установка и начальное конфигурирование OpenSuse Linux. Если же вы уже избавились от устаревшей операционной системы Windows на своем домашнем кампутере и думаете о том, как перевести на FreeWare OpenSource платформу свои сервера - то добро пожаловать на странички моего сайта - Модернизация Web-сервера - долой платный софт и Hyper-V, Основы работы с VmWare, Поднимаем на хостинге MySQL и PostgreSQL сервера, Настройка HTTP и FTP-серверов в Linux (Apache/vsftpd), Избавляемся от Team Foundation Server - ставим Subversion.



Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/LiveCD/index.htm
<На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить>