Доброго времени суток, товарищи!
Однаждытёмной-тёмной ночью мне захотелось заиметь флэшку с линуксом. И не простую, а загрузочную. Как я такую зверюшку делал и что в результате получил — под катом. Понимаю, что статей на эту тему уже немало, но тем не менее рискну представить свой опыт на суд сообщества. Мне нужна была флэшка для комфортной работы под любимой системой, я её сделал — и делюсь знаниями с сообществом.
Путём несложного гугления была найдена вот эта хабрастатья. Искренне благодарю автора за подробнейшее руководство, но всё-таки в предложенном способе был ряд нюансов, которые меня не вполне устроили.
Во-первых, необходимость конвертировать .vdi в .img. С восьмигигабайтной флэшкой, может быть, это быстро, легко и много места не займёт, а в моём случае, с 32Gb терзать винчестер RAW-файлом каждый раз, когда я захочу скинуть систему с виртуалки на флэшку, было бы киберсадизмом. И мазохизмом, потому что долго.
Во-вторых, для следования этому сценарию требуется Linux в качестве основной системы. Пишу эти строки из-под Ubuntu, но, тем не менее, хотелось бы иметь способ, подходящий и виндобедолагам, и маководам.
В комментариях к означенному топику товарищи говорили, что Ubuntu прекрасно ставится на флэшку «из коробки». Так-то оно так, но и этого мне делать не хотелось по следующим причинам.
Во-первых, износ флэшки. Ибо придётся ставить много пакетов, ядер и прочих радостей жизни.
Во-вторых, время. Я предполагал, что на установу всего необходимого в виртуалку и последующий перенос на флэшку уйдёт заведомо меньше времени.
В-третьих, всё это время штатная работа ЭВМ в основной системе будет невозможна.
В-четвёртых, я склонялся к виртуализации из-за удобства резервного копирования. Всё-таки скопировать vdi с винта на тот же винта несколько удобнее, чем бинарный образ с флэшки на винт, не находите?
В-пятых, интернет. Общеизвестно, что Ubuntu комфортнее ставится, когда у неё есть хорошее интернет-подключение. Да и тратить время на настройку интернет-подключения перед самой установкой как-то не хотелось. Ибо это опять пляски с бубном вокруг MAC-адреса… А каково тем бедолагам, у которых провайдер вообще не признаёт линукс системой, например, клиентам Freedom? Им вообще, чтобы настроить интернет под Linux, требуется установить дополнительные пакеты и основательно погуглить… неизвестно с чего. С ягеля.
Таким образом, требовалось найти метод, который позволял бы переносить Linux, установленный на виртуальной машине, на флэшку — напрямую. Метод был вполне найден и изложен ниже.
Нам потребуется:
ЭВМ с ОС, на которой установлена Virtualbox, есть USB-порт и настроен проброс USB-устройств в Virtualbox.
Образ устанавливаемой ОС Linux.
Виртуальная машина в Virtualbox c ОС, имеющей команду dd (полагаю, справится любой Linux LiveCD, хотя я использовал мимобеглую Fedora, которую держу на виртуалке). Далее — вспомогательная виртмашина.
Место на винчестере.
Флэшка.
Прямые руки.
Бутылка чего-нибудь для поддержания боевого духа (я использовал газированный напиток «Колокольчик»).
1) Сначала узнаём точный размер флэшки. Байт влево, байт вправо —растрел риск критической ошибки. Да-да, оставлять на флэшке лишнее место тоже не следует.
2) Теперь создаём vdi-образ жёсткого диска узнанного размера в Virtualbox. Можно динамический, в том и прелесть.
3) Теперь создаём виртуальную машину. ОС — та, которую будем ставить. Загрузочный носитель — образ установочного диска устанавливаемого дистрибутива. Памяти — сколько не жалко.
4) Устанавливаем Linux на виртуальную машину. Рекомендации простые — swap не делать, дабы не губить флэшку. (Впоследствии мы рассмотрим этот вопрос подробнее.) Я, например, кинул всё место в корень. Также на данном этапе можно установить несколько дистрибутивов, если Вы знаете, как они уживаются на одном винчестере. Я предпочёл этого не делать.
5) Настраиваем Linux на виртуальной машине. Так как я планировал работать на нём иногда — длительное время, иногда — в критической ситуации (где-то не грузится ОС, загрузиться хотя бы с флэшки), то настоятельно рекомендую установить легковесное DE и побольше ядер. Также не погнушайтесь сделать swap отдельным файлом, размером 192 Мб или около того. Lubuntu Netbook этого хватает, например. Впрочем, здесь ориентируйтесь на минимальный размер оперативки, при котором Ваш дистрибутив и DE грузится и позволяет без падений открыть консоль. Сделать swapoff -a всегда успеете, а возможность загрузиться на ЭВМ со 128 Мб оперативки иногда критична.
1) К вспомогательной виртмашине подключаем vdi с переносимым Linux и флэшку. Грузимся в основную ОС вспомогательной виртмашины.
2) В консоли ОС вспомогательной виртмашины набираем:
dd if=/dev/sdb of=/dev/sdc bs=128M
Здесь sdb — vdi-диск с подготовленным линуксом, sdc — флэшка.
Если требуется произвести перенос частями, в несколько этапов — man dd, внимание на параметры skip, seek и count.
3) Дожидаемся переноса данных на флэшку.
4) Контрольная загрузка с флэшки.
В принципе, задача выполнена. Дополнительное конфигурирование загрузчика, например, для загрузки сторонних ISO, остаётся на усмотрение читателя. я же осмелюсь лишь посоветовать установить Virtualbox на флэшку и при необходимости пробрасывать в неё требуемые ISO и винчестер.
Прошу не стесняться и задавать вопросы в комментариях. Если что-то непонятно, с удовольствием расскажу и отвечу.
Однажды
Часть первая. Определяем методику установки.
Путём несложного гугления была найдена вот эта хабрастатья. Искренне благодарю автора за подробнейшее руководство, но всё-таки в предложенном способе был ряд нюансов, которые меня не вполне устроили.
Во-первых, необходимость конвертировать .vdi в .img. С восьмигигабайтной флэшкой, может быть, это быстро, легко и много места не займёт, а в моём случае, с 32Gb терзать винчестер RAW-файлом каждый раз, когда я захочу скинуть систему с виртуалки на флэшку, было бы киберсадизмом. И мазохизмом, потому что долго.
Во-вторых, для следования этому сценарию требуется Linux в качестве основной системы. Пишу эти строки из-под Ubuntu, но, тем не менее, хотелось бы иметь способ, подходящий и виндобедолагам, и маководам.
В комментариях к означенному топику товарищи говорили, что Ubuntu прекрасно ставится на флэшку «из коробки». Так-то оно так, но и этого мне делать не хотелось по следующим причинам.
Во-первых, износ флэшки. Ибо придётся ставить много пакетов, ядер и прочих радостей жизни.
Во-вторых, время. Я предполагал, что на установу всего необходимого в виртуалку и последующий перенос на флэшку уйдёт заведомо меньше времени.
В-третьих, всё это время штатная работа ЭВМ в основной системе будет невозможна.
В-четвёртых, я склонялся к виртуализации из-за удобства резервного копирования. Всё-таки скопировать vdi с винта на тот же винта несколько удобнее, чем бинарный образ с флэшки на винт, не находите?
В-пятых, интернет. Общеизвестно, что Ubuntu комфортнее ставится, когда у неё есть хорошее интернет-подключение. Да и тратить время на настройку интернет-подключения перед самой установкой как-то не хотелось. Ибо это опять пляски с бубном вокруг MAC-адреса… А каково тем бедолагам, у которых провайдер вообще не признаёт линукс системой, например, клиентам Freedom? Им вообще, чтобы настроить интернет под Linux, требуется установить дополнительные пакеты и основательно погуглить… неизвестно с чего. С ягеля.
Таким образом, требовалось найти метод, который позволял бы переносить Linux, установленный на виртуальной машине, на флэшку — напрямую. Метод был вполне найден и изложен ниже.
Часть вторая. Готовим всё необходимое.
Нам потребуется:
ЭВМ с ОС, на которой установлена Virtualbox, есть USB-порт и настроен проброс USB-устройств в Virtualbox.
Образ устанавливаемой ОС Linux.
Виртуальная машина в Virtualbox c ОС, имеющей команду dd (полагаю, справится любой Linux LiveCD, хотя я использовал мимобеглую Fedora, которую держу на виртуалке). Далее — вспомогательная виртмашина.
Место на винчестере.
Флэшка.
Прямые руки.
Бутылка чего-нибудь для поддержания боевого духа (я использовал газированный напиток «Колокольчик»).
Часть третья. Устанавливаем Linux на виртуальную машину.
1) Сначала узнаём точный размер флэшки. Байт влево, байт вправо —
2) Теперь создаём vdi-образ жёсткого диска узнанного размера в Virtualbox. Можно динамический, в том и прелесть.
3) Теперь создаём виртуальную машину. ОС — та, которую будем ставить. Загрузочный носитель — образ установочного диска устанавливаемого дистрибутива. Памяти — сколько не жалко.
4) Устанавливаем Linux на виртуальную машину. Рекомендации простые — swap не делать, дабы не губить флэшку. (Впоследствии мы рассмотрим этот вопрос подробнее.) Я, например, кинул всё место в корень. Также на данном этапе можно установить несколько дистрибутивов, если Вы знаете, как они уживаются на одном винчестере. Я предпочёл этого не делать.
5) Настраиваем Linux на виртуальной машине. Так как я планировал работать на нём иногда — длительное время, иногда — в критической ситуации (где-то не грузится ОС, загрузиться хотя бы с флэшки), то настоятельно рекомендую установить легковесное DE и побольше ядер. Также не погнушайтесь сделать swap отдельным файлом, размером 192 Мб или около того. Lubuntu Netbook этого хватает, например. Впрочем, здесь ориентируйтесь на минимальный размер оперативки, при котором Ваш дистрибутив и DE грузится и позволяет без падений открыть консоль. Сделать swapoff -a всегда успеете, а возможность загрузиться на ЭВМ со 128 Мб оперативки иногда критична.
Часть четвёртая. Переносим Linux на флэшку.
1) К вспомогательной виртмашине подключаем vdi с переносимым Linux и флэшку. Грузимся в основную ОС вспомогательной виртмашины.
2) В консоли ОС вспомогательной виртмашины набираем:
dd if=/dev/sdb of=/dev/sdc bs=128M
Здесь sdb — vdi-диск с подготовленным линуксом, sdc — флэшка.
Если требуется произвести перенос частями, в несколько этапов — man dd, внимание на параметры skip, seek и count.
3) Дожидаемся переноса данных на флэшку.
4) Контрольная загрузка с флэшки.
В принципе, задача выполнена. Дополнительное конфигурирование загрузчика, например, для загрузки сторонних ISO, остаётся на усмотрение читателя. я же осмелюсь лишь посоветовать установить Virtualbox на флэшку и при необходимости пробрасывать в неё требуемые ISO и винчестер.
Прошу не стесняться и задавать вопросы в комментариях. Если что-то непонятно, с удовольствием расскажу и отвечу.