инсталляция: быстрая + безопасная

Детальный разбор дистрибутивов и других UNIX-like ОС

Модераторы: Olej, bellic, adminn, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

инсталляция: быстрая + безопасная

Непрочитанное сообщение Olej » 14 ноя 2013, 18:27

Тема возникла из необходимости часто устанавливать самые различные дистрибутивы Linux (для ознакомления ... удачные оставлялись для работы).
Кроме того, точно такая же задача возникает при создании мобильных инсталляций Linux: на USB-флеш, на внешний USB HDD ... через переходник USB <-> IDE/SATA на любой HDD и т.д.

А поскольку я за последние 2-3 года устанавливал (посмотреть) практически все свежие релизы всех дистрибутивов (вплоть до самых замысловатых ... да и не только Linux, но и Solaris, QNX, Minux 3, Android-86, ...). Речь идёт о многих десятках инсталляций, то, естественно, возникает вопрос: как это делать быстрее и с меньшими трудозатратами ... + к этому с меньшими рисками по неосторожности не "поставить" новую инсталляцию на место существующей системы на HDD.

Обычный традиционный путь установки из образа ISO описывается так:
1. накатать из ISO-образа CD/DVD;
2. загрузиться с этого CD/DVD;
3. ... следовать инструкции инсталляции ;-)
4. перезагрузиться с установленной системы.

Поначалу все только так и делали... Но здесь неприятные п.п.1-2: долго, хлопотно, бывают порченые носители, ... не на всех компьютерах уже есть CD-привод, или он может барахлить и т.д.

Следующий шаг - переход на загрузку-инсталляцию с USB-флеш диска:
1. записать загрузочную флешку (см. загрузочный Linux на USB флешке;
2. загрузиться с этой флешки;
... а дальше всё в точности как в предыдущей задаче ;-)

И там и там от чего хотелось бы избавиться?
1. 2 перезагрузки (п.2 и п.4)
2. вся инсталляция (обычно довольно медленная и тягомутная) происходит вслепую (в режиме текстового или графического диалога) и в однозадачном-одноэкранном режиме (оно делает - мы сидим ждём :-( )
2. если что-то с установкой не так (п.4 не успешный) всё практически придётся повторять по-новой

Но можно (особенно если хорошо понимать что делаешь) весь этот процесс делать в виртуальной машине, QEMU (или VirtualBox):
1. запускаем в Linux виртуальную машину, отдав ей не так много RAM - 500M, 700M, ... обычно за глаза достаточно...
2. в качестве CD/DVD указываем имя файла ISO-образа...
3. в качестве HDD указываем только один выбранный привод (это вовсе может быть не HDD, а внешний USB-носитель - их Linux не различит)...
4. создаём (при запуске ... командой, настройками) сетевые соединения (для QEMU TAP или др.)...
5. устанавливаем систему с ISO-образа на единственный переданный HDD, который теперь отображается как /dev/sda
6. перезагружаем виртуальную машину изменив ей устройство загрузки с ISO-образа на USB-носитель куда установили
7. если при инсталляции что-то установилось не так - всегда можем смонтировать USB-носитель в базовом Linux - подправить - вернуться на п.5/6 ... а не делать всю инсталляцию с начала.
8. все операции п.п.1-6 можем делать при работающей системе, без единой перезагрузки, параллельно занимаясь чем-то другим :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инсталляция: быстрая + безопасная

Непрочитанное сообщение Olej » 15 ноя 2013, 03:01

Olej писал(а): Но можно (особенно если хорошо понимать что делаешь) весь этот процесс делать в виртуальной машине, QEMU (или VirtualBox):
В объяснение того, как это выглядит ("лучше 1 раз увидеть, чем 10 раз услышать") - устанавливаем ... Puppy Linux на USB-флешку (Puppy - потому, что он уже самыми разнообразными и "крученными" способами ставится + ещё и из-за минимального размера).

3 самых свежих сборки - viewtopic.php?f=4&t=1740

Код: Выделить всё

olej@notebook:~/Загрузки/ISO-Linux/Puppy$ ls -l
итого 450260
-rw-r--r-- 1 olej olej 162844672 Ноя 13 01:36 precise-5.7.1-ru.iso
-rw-r--r-- 1 olej olej 129120256 Ноя 13 01:20 PuppyRus-Icewm-13.10.iso
-rw-r--r-- 1 olej olej 169093120 Ноя 12 18:25 slacko-5.5-4Gru01.iso
Устанавливаем на /dev/sdb

Код: Выделить всё

olej@notebook:~/Загрузки/ISO-Linux/Puppy$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2/dev/sda3  /dev/sdb  /dev/sdb1
Этот USB-флеш диск только вдвое медленнее HDD:

Код: Выделить всё

root@notebook:/etc# hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   2304 MB in  2.00 seconds = 1152.74 MB/sec
 Timing buffered disk reads: 102 MB in  3.03 seconds =  33.65 MB/sec
root@notebook:/etc# hdparm -tT /dev/sdb
/dev/sdb:
 Timing cached reads:   2224 MB in  2.00 seconds = 1112.93 MB/sec
 Timing buffered disk reads:  50 MB in  3.08 seconds =  16.24 MB/sec
Загрузка с установочного (он же live) ISO:

Код: Выделить всё

olej@notebook:~/Загрузки/ISO-Linux/Puppy$ sudo qemu -m 800M -cdrom precise-5.7.1-ru.iso \
> -boot d -enable-kvm -net nic,vlan=0 -net tap,vlan=0
...
P.S. Права root здесь нужны только при запуске с сетью TAP, что в данном случае, на начальном этапе, не обязательно.

P.S. Напоминание тем, кто вздумает повторить нечто подобное: освобождение мыши, захваченной графическим экраном QEMU производится по умолчанию <Ctrl>+<Alt>!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инсталляция: быстрая + безопасная

Непрочитанное сообщение Olej » 15 ноя 2013, 03:13

Olej писал(а):Загрузка с установочного (он же live) ISO:

Код: Выделить всё

olej@notebook:~/Загрузки/ISO-Linux/Puppy$ sudo qemu -m 800M -cdrom precise-5.7.1-ru.iso \
> -boot d -enable-kvm -net nic,vlan=0 -net tap,vlan=0
...
precise_1.png
Достаточно быстро получаем загруженную систему
precise_2.png
Дальше делается достаточно обычная инсталляция на диск. Важно здесь то, что будь у нас хоть 10 дисков в системе (IDE, SATA, USB, SD, ...) - в диалогах инсталляции будет присутствовать только 1, только тот, который указан в строке запуска QEMU - /dev/hdb, и здесь он будет отображаться как /dev/sda. Ошибиться или напартачить с загрузчиками - невозможно!
precise_12.png
Уже на этом этапе может вызваться полноценный gparted для переразметки диска ... И дальше - инсталляция:
precise_13.png
precise_14.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инсталляция: быстрая + безопасная

Непрочитанное сообщение Olej » 15 ноя 2013, 03:30

Olej писал(а):И дальше - инсталляция:
После завершения инсталляции установим GRUB, вручную: Меню -> Система -> GRUB...
precise_15.png
Я установил систему в каталог (Puppy такое может).
А вот при этом установщик GRUB создаёт меню menu.lst - неправильно!, система не загружается! (но это вопрос сборки, а не способа).

И тут вступает в игру главное преимущество:
- прямо в процессе инсталляции или позже, при загруженном Puppy Linux ...
- я могу всегда получать доступ к инсталлируемому диску, и правки его, примонтированного в хостовой Debian Linux:

Код: Выделить всё

olej@notebook:/media/usb0$ tree /media/usb0/boot
/media/usb0/boot
└── grub
    ├── menu.lst
    ├── menu.lst.0
    ├── stage1
    └── stage2

1 directory, 4 files

Код: Выделить всё

olej@notebook:/media/usb0$ ls /media/usb0/
boot  fsckme.flg  lost+found  precise5.7.1frugal  pupdesk.flg

Код: Выделить всё

olej@notebook:/media/usb0/boot/grub$ cat /media/usb0/boot/grub/menu.lst
timeout 2
default 0
#
title Puppy Linux Frugal on sda1
root (hd0,0)
kernel /precise5.7.1frugal/vmlinuz pmedia=atahd pdev1=sda1 pfix=fsck
initrd /precise5.7.1frugal/initrd.gz
Вот тот каталог /precise5.7.1frugal/... (установки Puppy) GRUB сам не совладал вписать ;-)

Всё!
Меняем указание устройства загрузки (-boot d на -boot c), и грузим свеже установленную систему:

Код: Выделить всё

olej@notebook:~/Загрузки/ISO-Linux/Puppy$ sudo qemu -m 1000M -hda /dev/sdb \
> -cdrom precise-5.7.1-ru.iso -boot c -enable-kvm -net nic,vlan=0 -net tap,vlan=0
...

Аватара пользователя
Виктория
Писатель
Сообщения: 113
Зарегистрирован: 28 дек 2012, 14:05
Откуда: Самара
Контактная информация:

Re: инсталляция: быстрая + безопасная

Непрочитанное сообщение Виктория » 15 ноя 2013, 09:01

Olej писал(а):P.S. Напоминание тем, кто вздумает повторить нечто подобное: освобождение мыши, захваченной графическим экраном QEMU производится по умолчанию <Ctrl>+<Alt>!
Таким методом можно установить и использовать любую ОС? И Mac OS X можно?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инсталляция: быстрая + безопасная

Непрочитанное сообщение Olej » 15 ноя 2013, 13:07

Виктория писал(а):
Olej писал(а):P.S. Напоминание тем, кто вздумает повторить нечто подобное: освобождение мыши, захваченной графическим экраном QEMU производится по умолчанию <Ctrl>+<Alt>!
Таким методом можно установить и использовать любую ОС? И Mac OS X можно?
1. Вы ведь о x86 говорите? На x86 ведь нельзя создать макинтош, а можно только хакинтош ;-)

2. Таким способом можно (с некоторыми ограничениями) создать начальный инсталлированный диск любой системы - идея здесь в том, чтобы делать инсталляцию без загрузки и перезагрузок.

3. Но такой способ для разных ОС потребует изрядной изобретательности (в зависимости от конкретной ОС ... и даже дистрибутива и выбранного ISO):
- некоторым нужно сразу настроить сеть внаружу для сетевой инсталляции (это требует хорошего понимания роутинга, форвардинга, NAT-фильтрации и т.д.)
- такая дрянь как Windows ;-) , которая на одном железе работает, а при переносе на другое отказывается - потребует создать (параметрами) VM конфигурации близкой к той, где будет использоваться

4. По поводу MacOS в виртуальной машине см. MacOS & iOS под VirtualBox (там описано и где взять, и что взять ;-) , и как поставить).
MacOS очень капризная ... но всё доводится до ума.
По моему мнению, если очень уж хочется MacOS на x86, то я не делал бы хакинтош, а так бы и использовал для работы под VM - вполне приемлемо.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инсталляция: быстрая + безопасная

Непрочитанное сообщение Olej » 15 ноя 2013, 13:41

Olej писал(а): P.S. Права root здесь нужны только при запуске с сетью TAP, что в данном случае, на начальном этапе, не обязательно.
Для использования TAP сетевого интерфейса для QEMU нужно создать (не забыть) 2 файла (/etc/qemu-ifup и /etc/qemu-ifdown) примерно такого содержания (/etc/qemu-ifdown не так уж и обязательный, но пусть будет):

Код: Выделить всё

olej@notebook:~/2013_WORK/HISTORY/11.2013$ cat /etc/qemu-ifup 
#!/bin/sh
sudo /sbin/ifconfig $1 192.168.2.1

Код: Выделить всё

olej@notebook:~/2013_WORK/HISTORY/11.2013$ cat /etc/qemu-ifdown
#!/bin/sh
sudo /sbin/ifconfig $1 down
Ну и, естественно,:

Код: Выделить всё

olej@notebook:~/2013_WORK/HISTORY/11.2013# chmod a+x /etc/qemu-*


И далее проверить, что после запуска QEMU на хостовой машине появляется интерфейс:

Код: Выделить всё

root@notebook:/etc# ifconfig
...
tap0      Link encap:Ethernet  HWaddr 1a:c7:68:d6:83:e7
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::18c7:68ff:fed6:83e7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:2175 (2.1 KiB)  TX bytes:9099 (8.8 KiB)
...
Но всё, что касается поднятия и настройки сети в VM - это очень важно, объёмно ... и требует подробного объяснения (особенно, если вам нужна сразу инсталляция по сети).
Я буду описывать это (особенно проблемы здесь возникающие) по ходу своих экспериментов.
А пока это можно почитать предварительно ... "по аналогии" ;-) вот здесь же на форуме - QEMU:
minix-in-qemu-218.odt
раскрутка QEMU + запуск под ним гостевой ОС, в данном случае был MINIX3, но это абсолютно неважно, на этот раз это будет, например, PuppyRus Linux ;) - 28 стр.
(626.42 Кб) Скачиваний: 160

net-minix-config-419.odt
а это - разные способы конфигурирования сети для VM установленной в QEMU - 27 стр.
(40.58 Кб) Скачиваний: 158

Ответить

Вернуться в «Дистрибутивы Linux и родственные ОС»

Кто сейчас на конференции

Сейчас этот форум просматривают: FAST WebCrawler [Crawler] и 6 гостей