инсталляция: быстрая + безопасная
Модераторы: Olej, bellic, adminn, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
инсталляция: быстрая + безопасная
Тема возникла из необходимости часто устанавливать самые различные дистрибутивы 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 можем делать при работающей системе, без единой перезагрузки, параллельно занимаясь чем-то другим
Кроме того, точно такая же задача возникает при создании мобильных инсталляций 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: инсталляция: быстрая + безопасная
В объяснение того, как это выглядит ("лучше 1 раз увидеть, чем 10 раз услышать") - устанавливаем ... Puppy Linux на USB-флешку (Puppy - потому, что он уже самыми разнообразными и "крученными" способами ставится + ещё и из-за минимального размера).Olej писал(а): Но можно (особенно если хорошо понимать что делаешь) весь этот процесс делать в виртуальной машине, QEMU (или VirtualBox):
3 самых свежих сборки - viewtopic.php?f=4&t=1740
Устанавливаем на /dev/sdbКод: Выделить всё
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
Код: Выделить всё
olej@notebook:~/Загрузки/ISO-Linux/Puppy$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2/dev/sda3 /dev/sdb /dev/sdb1
Код: Выделить всё
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
Код: Выделить всё
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. Напоминание тем, кто вздумает повторить нечто подобное: освобождение мыши, захваченной графическим экраном QEMU производится по умолчанию <Ctrl>+<Alt>!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: инсталляция: быстрая + безопасная
Достаточно быстро получаем загруженную систему Дальше делается достаточно обычная инсталляция на диск. Важно здесь то, что будь у нас хоть 10 дисков в системе (IDE, SATA, USB, SD, ...) - в диалогах инсталляции будет присутствовать только 1, только тот, который указан в строке запуска QEMU - /dev/hdb, и здесь он будет отображаться как /dev/sda. Ошибиться или напартачить с загрузчиками - невозможно! Уже на этом этапе может вызваться полноценный gparted для переразметки диска ... И дальше - инсталляция: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 ...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: инсталляция: быстрая + безопасная
После завершения инсталляции установим GRUB, вручную: Меню -> Система -> GRUB... Я установил систему в каталог (Puppy такое может).Olej писал(а):И дальше - инсталляция:
А вот при этом установщик 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
Всё!
Меняем указание устройства загрузки (-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: инсталляция: быстрая + безопасная
Таким методом можно установить и использовать любую ОС? И Mac OS X можно?Olej писал(а):P.S. Напоминание тем, кто вздумает повторить нечто подобное: освобождение мыши, захваченной графическим экраном QEMU производится по умолчанию <Ctrl>+<Alt>!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: инсталляция: быстрая + безопасная
1. Вы ведь о x86 говорите? На x86 ведь нельзя создать макинтош, а можно только хакинтошВиктория писал(а):Таким методом можно установить и использовать любую ОС? И Mac OS X можно?Olej писал(а):P.S. Напоминание тем, кто вздумает повторить нечто подобное: освобождение мыши, захваченной графическим экраном QEMU производится по умолчанию <Ctrl>+<Alt>!
2. Таким способом можно (с некоторыми ограничениями) создать начальный инсталлированный диск любой системы - идея здесь в том, чтобы делать инсталляцию без загрузки и перезагрузок.
3. Но такой способ для разных ОС потребует изрядной изобретательности (в зависимости от конкретной ОС ... и даже дистрибутива и выбранного ISO):
- некоторым нужно сразу настроить сеть внаружу для сетевой инсталляции (это требует хорошего понимания роутинга, форвардинга, NAT-фильтрации и т.д.)
- такая дрянь как Windows , которая на одном железе работает, а при переносе на другое отказывается - потребует создать (параметрами) VM конфигурации близкой к той, где будет использоваться
4. По поводу MacOS в виртуальной машине см. MacOS & iOS под VirtualBox (там описано и где взять, и что взять , и как поставить).
MacOS очень капризная ... но всё доводится до ума.
По моему мнению, если очень уж хочется MacOS на x86, то я не делал бы хакинтош, а так бы и использовал для работы под VM - вполне приемлемо.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: инсталляция: быстрая + безопасная
Для использования TAP сетевого интерфейса для QEMU нужно создать (не забыть) 2 файла (/etc/qemu-ifup и /etc/qemu-ifdown) примерно такого содержания (/etc/qemu-ifdown не так уж и обязательный, но пусть будет):Olej писал(а): P.S. Права root здесь нужны только при запуске с сетью TAP, что в данном случае, на начальном этапе, не обязательно.
Код: Выделить всё
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)
...
Я буду описывать это (особенно проблемы здесь возникающие) по ходу своих экспериментов.
А пока это можно почитать предварительно ... "по аналогии" вот здесь же на форуме - 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
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и 4 гостя