Спасительная флешка на основе дистрибутива Linux Debian/Ubuntu

Начну с сути идеи — куча одинаковых компов, на них требуется установить ОС Windows XP с одинаковым набором программ. Первая мысль — настроить один эталонный компьютер, снять с него образ жесткого диска и развернуть на остальных компьютерах.

Acronis не подходил по «религиозным соображениям» компании.

Поискав DIY решение, наткнулся на замечательную вещь ntfsclone из пакета ntfsprogs.

Следует заметить, что в компьютерах отсутсвует привод оптических дисков, переностного в конторе нет, следовательно остается два варианта — бегать с отверткой и приводом поочередно к каждой машине или же воспользоваться флешкой. Вариант с флешкой мне нравился больше. Поэтому на нем остановился и принялся за изучение вопроса.

Что бы приступить к созданию спасительной флешки нам потребуется:
1) Компьютер с установленной ОС из семества Linux.
2) Флешка объем особой роли не играет, чем больше — тем лучше.
3) Установочный образ Debian/Ubuntu (Лично я выбрал Ubuntu Server 10.04)

Я выбрал вариант установки ОС на флешку при помощи копирования раздела VirtualBox'a (vdi).

1) Установка VirtualBox.
— Устанавливаем необходимые пакеты для VirtualBox:
apt-get install qemu-utils virtualbox-ose
— Запустим VirtualBox
— Создаем виртуальную машину оперативы берем 512мб или более, создаем новый файл жесткого диска и называем его произвольно, главное его размер — он должен быть чуть меньше размера заготовленной флешки (у меня флешка была на 7.6Gb я взял раздел как 7.5Gb)
— Как привод выбираем ISO образ дистрибутива той ОСи которую хотим поставить на флешку (в моем случае UbuntuServer 10.04)
— Запускаем виртуальную машину.

2) Установка ОС на виртуальную машину.
— Идем по пунктам как при стандартной установке, останавливаемся на разбивке жесткого диска — SWAP раздел делать крайне не советую, флешка может умереть быстро (мой вариант разбивки был элементарен — все свободное пространство в корень)
— Продолжаем установку дальше без вопросов.
— По завершении установки советую засунуть /tmp в tmpfs — причины две, небольшое ускорение работы а так же уменьшение износа флешки.
tmpfs /tmp tmpfs size=100M 0 0
— Перезапускаем машину, если все нормально идем дальше.

3) Подготавливаем операционную систему.
Хотел бы отметит еще один факт, установкой систем будет заниматся человек совершенно не знакомый с семейством Linux, в связи с этим задача несколько осложняется, надо сделать так что бы человеку не пришлось лазить по консольке и искать нужные команды, поэтому было решено сделать GUI на основе dialog.
— Даем себе рутовые привилегии
sudo -s
— Создаем нужные папки где будут храниться скрипты и сам образ системы.
mkdir /recovery
mkdir /recovery/img
mkdir /recovery/shell

— Далее необходимо что при запуски системы сразу загружался скрипт.
touch /recovery/shell/start.sh
chmod +x /recovery/shell/start.sh
nano /etc/init/tty1.conf

В файле tty1.conf лежат настройки запуска первой виртуальной консоли, коментим exec /sbin/getty -8 38400 tty1 и дописываем туда exec /recovery/shell/start.sh > /dev/tty1 все вывод работы скрипта будет отправлен в первую виртуальную консоль.
— далее для работы нам потребуется бинарник ntfsclone из пакета ntfsprogs.
apt-get install ntfsprogs
— Для красоты скриптов нужен пакет dialog.
apt-get install dialog
— Переходим к самому простому — скриптам, для создания образа и востановления системы.
nano /recovery/shell/start.sh
#!/bin/bash
dialog --title "Recovery" \
--backtitle "RecoveryShell" \
--yesno "Are you sure you want recovery OS?" 7 60
response=$?
case $response in
0) clear ; /recovery/shell/start_recovery.sh;;
1) clear ; /recovery/shell/exit.sh;;
255) clear ; /recovery/shell/create_img.sh;
esac
^X

Немного прокоментирую — тут мы создали простой yes/no диалог, однако есть и 3 вариант — двойное нажатие клавиши ESC, так мы попадаем на скрипт создания образа.
— Пишем скрипт востановление образа.
nano /recovery/shell/start_recovery.sh
#!/bin/bash
gunzip -c /recovery/img/backup.img.gz | ntfsclone -r -O /dev/sda1 -
^X

— Пишем скрипт создания образа.
nano /recovery/shell/create_img.sh
#!/bin/bash/
ntfsclone --save-image -o - /dev/hda1 | gzip -c > /recovery/img/backup.img.gz
^X

— Пишем скрипт выхода.
nano /recovery/shell/exit.sh
#!/bin/bash
reboot
^X

— В целом подготовка ОС закончена.

4) Перенос виртуального жесткого диска на флешку(выполнять на компьютере где установлен VirtualBox).
— Конвертируем VDI в RAW (используется на жестких дисках)
VBoxManage clonehd -f vdi -O raw input.vdi output.img
Где input.vdi файл жесткого диска виртуальной машины.
— Копирование RAW образа на флешку.
dd if=output.img of=/dev/sdc
Где /dev/sdc флешка.
А теперь запаситесь терпением т.к. копирует крааайне медленно ( у меня ушло порядка 3-4 часов).

5) Run it!
— Если все верно сделали то вставляем флешку и радуемся результату.


Эталонный компьютер был обработан при помощи утилиты Sysprep
Средство подготовки системы (Sysprep) - это технология, которая используется с другими средствами развертывания для установки операционных систем Windows на новое оборудование. Программа Sysprep подготавливает компьютер к созданию образа диска или к доставке компьютера заказчику, создавая новый идентификатор безопасности (SID) при перезапуске компьютера. Кроме того программа Sysprep очищает параметры пользователя и системы, а также данные, которые не должны быть записаны на конечный компьютер.
(c) microsoft.com

Поделиться публикацией
Комментарии 49
    +15
    На будущее: clonezilla.org
      +6
      Благодарю.
      Все сделано и работает. Мне потом сказали, что я изобрел велосипед, но в процессе я получил хороший опыт.
        +1
        Так я рад за вас! Опыт — это всегда замечательно. Ну и что, что в следствии его получения рождаются велосипеды?
        К тому же, вероятно, ваше решение лучше подходит своей узкой специализацией для пользователя. У clonezilla помнится, побольше будет менюшек и шагов.
          0
          велосипед?
          Вряд ли, это больше похоже на самокат с паровым двигателем, топкой и кочегарами.
            +1
            стимпанк
        • НЛО прилетело и опубликовало эту надпись здесь
          +4
          Вообще это делается проще — установкой по сети.
            +1
            man dd
              +3
              man «DHCP+PXE». :)
              +5
              Адово извратный способ установки убунты на флешку. Да и вообще всё как-то не по-человечески.
                +2
                Я бы много хотел сказать про контору в которой нет даже внешнего переносного привода, но лучше промолчу. А опыт это конечно хорошо.

                p.s. Прочитав первые строки складывается ощущение что у вас стремная и очень бедная контора.
                  0
                  Бедная это вы угадали, но к счастью не моя, я там только «проходящий».
                    +2
                    Вообще у нас контора тоже говно, но по-моему вы не в ту ветку ответили :)
                      0
                      Почему даже привода? Это не так-то просто!

                      Я вот полгода получал ножницы (!), успев за это время получить несколько серверов вплоть до IBM x3850 с 512 Гбайт ОЗУ. Контора при этом не бедная, хотя и стрёмная. Дело-то не в деньгах, а в бюрократии административных процедурах.
                        0
                        То есть через полгода кто-то вспомнил «Ой, ему же ножницы нужны были»? :)
                        Да уж, хорошо, если есть «Канцтовары» напротив работы.
                          0
                          Да не, про меня так просто не забудешь. Просто процедура такая.

                          А покупать что-то за свои деньги — увольте.
                            0
                            Зависит от работы. Где-то даже можно через бухгалтерию по чеку вернуть.
                            Хотя привод, конечно, не ножницы — за «может, вернут» покупать не пойдёшь.
                    +1
                    Мдэ… debootstrap отменили?
                      0
                      У вас что компьютеры в сети? Мне кажется гораздо проще удобнее развертывать образы по сети.
                        0
                        Идея с сетью была отвергнута инициатором мысли, т.к ему нужен был standalone вариант.
                        0
                        В далеком 97-м году, когда понадобилось оперативно установить Windows NT 4.0 на 20 одинаковых рабочих станций, при отсутствии не то что флешек, а даже возможности записать CD, был методом тыка изобретен (или переоткрыт — интернета тоже под рукой не было) такой способ клонирования:
                        • на одну машину устанавливается эталонная копия системы, со всеми сервис-паками и приложениями
                        • вставляется второй винчестер и организуется софтовое зеркало (RAID-1)
                        • «зеркальный» винчестер переносится на другую машину, где все загружается и прекрасно работает, остается лишь поменять имя компьютера
                        • повторять N раз

                        Может, были еще какие-нибудь промежуточные процедуры, но сейчас уже запамятовал.
                        Интересно, сейчас такой фокус с Windows пройдет? И актуален ли он, особенно учитывая современные возможности по горячему подключению/отключению накопителей?
                          0
                          Софтовое зеркало не потребует ли превратить диск в динамический со всеми сопутствующими проблемами?
                            0
                            В то время динамических дисков еще не было, а сейчас — не скажу, потерял уже квалификацию :)
                            +1
                            А мне рассказывали про админа, который примерно так «отзеркалил» диск… чистый на эталонный :)
                              0
                              Наверное обо не история была...)))
                              Хана БД была, а все из за того что dd оказывается н интуитивный в опциях и там все наоборот, INPUT видетели у него выходной поток
                              0
                              У меня году в 2005 похожий способ раскатывание настроек. Ставилось все на эталонный комп. Затем новый комп извлекался из коробки втрой шлейф ide из эталонного втыкался сразу в новый. Дальше Norton Ghost клонирование. Получался фактически конвеер. образ заливался минут 10, за это время я оттсаскивал предыдущий комп на постоянное место прописки и успевал распаковать следующий. В итоге за день где-то 30 компов обновил. Профит был в том, что откручивать, закручивать нужно было только боковую стенку.
                                0
                                Помимо смены имени компьютера как минимум sid при таком способе установки желательно менять, специальную тулзу даже выпускали.
                                  0
                                  По вашей же ссылке красным выделено примечание со статьёй, почему необходимость смены sid'а — это миф ;-)

                                  После установки и настройки эталонной системы она «запечатывается» утилитой sysprep — вот вам и новый sid, и новое имя, и поиск оборудования и т.п.
                                    0
                                    Статья про допустимость одинаковых SID — чепуха. Писал Руссиновичу с описанием ситуации, когда одинаковые SID нарушают работу домена (когда SID КД совпадает с чьим-то ещё). Потом оказалось, что я не один такой, а эти SID ещё на WSUS боком выходят. Но, видимо, ему не по статусу простым смертным отвечать.
                                      0
                                      Сейчас сходу ссылку не найду, но Майкрософт настаивает на том, что при развёртывании образов по сети необходима обработка sysprep'ом, который в числе прочего тоже меняет SID. Более того, инфраструктура WDS вообще отказывается иметь дело с необработанным образом.

                                      Хотя если не пользоваться WDS и не использовать в группах доступа компьютеров, клонированные машины вполне себе работают в домене. Работал с обоими вариантами, но всё-таки SID лучше менять, меньше потенциальных проблем будет.
                                        0
                                        *не использовать в группах доступа учётные записи компьютеров
                                        0
                                        Про WSUS — это верно замечено, всегда это как-то пропускают (
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Смотрите на вещи позитивно: «дают возможность приобрести ценный опыт»!
                                      0
                                      (g)imagex бесплатен
                                        +1
                                        по религиозным соображениям… а то что винда пиратская, это, видимо волновало мало…
                                        0
                                        на флешку Trinity Linux, оттуда mclone server. Остальные компы загрузить с этоё же флехи в RAM или через PXE. Вуаля!
                                          0
                                          Ээээ. А что помешало скормить виртуалбоксу флешку в качестве физического HDD и устанавливать систему прямо на неё? Не говоря уже про вышеназванный debootstrap.
                                            0
                                            Не знание того этого момента и помешало мне, спасибо за информацию.
                                              0
                                              Не знание этого момента и помешало мне, спасибо за информацию.*
                                            +1
                                            dd if=output.img of=/dev/sdc
                                            Где /dev/sdc флешка.
                                            А теперь запаситесь терпением т.к. копирует крааайне медленно ( у меня ушло порядка 3-4 часов).

                                            Если бы вы добавили bs=4M, то не ждали бы так долго.

                                              0
                                              Спасибо не знал, плюсовать пока не могу.
                                              –2
                                              man dd

                                              if=FILE read from FILE instead of stdin
                                              of=FILE write to FILE instead of stdout
                                                +2
                                                Если бы вы прочитали вы бы поняли, что у меня все правильно написанно.

                                                — Конвертируем VDI в RAW (используется на жестких дисках)
                                                VBoxManage clonehd -f vdi -O raw input.vdi output.img
                                                Где input.vdi файл жесткого диска виртуальной машины.
                                                — Копирование RAW образа на флешку.
                                                dd if=output.img of=/dev/sdc

                                                Я люблю критику и готов признавать ошибки, но простите меня — тыкать в ман, не читая текста как минимум не культурно.
                                                0
                                                Факт дублирования SID проигнорирован или есть способы решения проблемы?
                                                  0
                                                  Прошу простить меня за это, я совершенно забыл что эталонный компьютер был обработан при помощи утилиты Sysprep

                                                  Средство подготовки системы (Sysprep) - это технология, которая используется с другими средствами развертывания для установки операционных систем Windows на новое оборудование. Программа Sysprep подготавливает компьютер к созданию образа диска или к доставке компьютера заказчику, создавая новый идентификатор безопасности (SID) при перезапуске компьютера. Кроме того программа Sysprep очищает параметры пользователя и системы, а также данные, которые не должны быть записаны на конечный компьютер.
                                                  (c) microsoft.com
                                                    0
                                                    Тогда понятно, спасибо.
                                                  0
                                                  Убунта на флешку ставится на ура из коробки, кстати.
                                                    +1
                                                    Автор не ищет легких путей.
                                                    … Переспать? Но тогда только в гамаке! (с) =)

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                  Самое читаемое