Загрузка и установка РОСЫ со своего же HDD
Устанавливать РОСУ можно множеством различных способов — в частности, c ISO-образа, расположенного на вашем жестком диске. Однако описанный в нашей вики способ подразумевает также наличие на вашей машине полноценно работающей ОС, в которой надо произвести некоторые подготовительные действия перед установкой. Однако может случиться, что такой системы на машине нет, равно как нет возможности загрузиться с внешнего устройства. Именно в такой ситуации оказался недавно наш коллега Сергей Соколов, и ниже мы приводим его рассказ о том, как он из этой ситуации выпутался.
Угораздило меня установить разработческую версию Fresh R4 себе на рабочий ноут. Прихожу утречком пораньше на работу, ставлю кучу обновлений и перезагружаюсь. А в этот момент в репозиториях, оказывается, как раз шел процесс обновления systemd и еще кучи всего системного. Короче, система не загружается, а вываливается в консоль dracut.
Так и эдак потыкался, никак система не поднимается. В общем, нужно переустанавливать. Флешки нет, CD/DVD привода нет, в офисе тоже никого нет, чтобы записать установочную флешку. Ну или представьте ситуацию, что система умерла где-нибудь в отпуске, а ноут вот прямо сейчас очень нужен.
Решил я малость поэкспериментировать с загрузкой с ISO-образа, расположенного на моем SSD/HDD носителе, да еще и на том самом, на который будет устанавливаться система.
# fdisk -l /dev/sda Disk /dev/sda: 480.1 GB, 480103981056 bytes, 937703088 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 2048 33556479 16777216 82 Linux своп / Solaris /dev/sda2 33556480 96471039 31457280 83 Linux /dev/sda3 96471040 937703087 420616024 5 Расширенный /dev/sda5 96473088 937703087 420615000 83 Linux
В общем-то, тут
- /dev/sda1 — своп раздел который у меня когда-то был, но сейчас просто отключен,
- /dev/sda2 — мой рут,
- /dev/sda5 — /home
От системы у меня в наличии только initrd и вываливается dracut
Вот его-то оказалось вполне достаточно:
mkdir /mnt mount /dev/sda2 /mnt mount -o bind /dev /mnt/dev mount -o bind /dev/pts /mnt/dev/pts mount -o bind /proc /mnt/proc mount -o bind /sys /mnt/sys mount /dev/sda5 /mnt/home chroot /mnt dd if=/home/path/to/ROSA.FRESH.KDE.R3.x86_64.iso of=/dev/sda1 bs=8M touch /boot/resque.iso vi /boot/grub2/grub.cfg
В конфигурационном файле grub находим строку содержащую rescue.iso и приводим эту часть файла к следующему виду:
### BEGIN /etc/grub.d/43_resque ### if [ -f /boot/resque.iso -o -f /boot/sgb.iso ]; then submenu 'Repair tools' { if [ -f /boot/resque.iso ]; then menuentry "Boot rescue CD" { linux (hd0,1)/isolinux/vmlinuz0 boot=live iso_filename=/dev/sda1 root=live:/dev/sda1 rootfstype=auto ro rd.live.image rhgb splash=silent logo.nologo rd.luks=0 rd.md=0 rd.dm=0 initrd (hd0,1)/isolinux/initrd0.img } fi
Синкаем файловую систему командой sync и перезагружаемся. Теперь у нас есть recovery раздел, с которого без проблем устанавливается система. Главное здесь — не запускать форматирование раздела sda1 при установке системы.
Кстати, мы внутри неоднократно обсуждали, нужен ли при загрузке опциональный режим «восстановления через переинсталляцию», а именно:
- В инсталляторе предложить пользователю сохранить на /boot (если он создан) или /root- разделе собственно сам ISOшник, в виде файла installer.iso, с которого проходит инсталляция.
- Да, в /boot его положить лучше, ибо тогда можно будет переинсталлировать и полностью убитые /root-разделы, но это отдельный UX-вопрос, как предложить это проще, не перегружая и так непростой инсталлятор. Пока можно просто предложить такую опцию, интерфейсно аналогично как в конце инсталляции предлагается выбрать swap-файл, если swap-раздела не найдено — т.е. еще один вопрос в конце инсталляции.
- В GRUB-меню, в раздел Troubleshooting добавить и пункт «Переинсталляция», которный собственно и даст возможность переинсталлировать базовую систему (для начала без специальных типа сохранения /etc/passwd, и прочего) — т.е. опция скорее для не очень простых пользователей, хотя, если это ноутбук, который использует один человек, то, т.к. переформатирования /home не будет, то средней вменяемости пользователь уже сможет себе восстановить систему практически без приседаний.
Вопрос, интересно ли это нашим пользователям, иметь возможность держать полтора гига на винте, под возможность быстрой базовой переинсталляции?
Идея «Troubleshooting-восстановление через переинсталляцию»:
|
[ Хронологический вид ]Комментарии
Так можно и OEM Install собрать.
Будет очень хорошо, если получится система переустановки как в Ноутбуках с Windows - на уровне Bios нажал на пункт "переустановка" и все новое. Но для этого надо iso файл держать не в /Boot или в /, а в отдельном загрузочном (может даже скрытом разделе) + позволить Root обновлять файл образа (это ХP больше 10 лет "не стареет" Linux так не сможет), чтобы при переустановке можно было установить актуальную версию "с чистого листа" (даже с форматированием /boot, / и Home).
Мы хотим пока начать с малого:
как раз в таком виде как вы предлагаете (если начнем решать — попробуем с простого, т.е. просто ISO-файл на отдельном разделе, /boot, /root, /rescue, и обновление этого файла оставить пользователю (т.е. при выходе нового релиза именно пользователь, а не пакетная система будет заменять этот файл). На самом деле, даже это надежно сделать будет непросто.) конечно оно и не нужно. В этой функции будет смысл если с ней сможет справиться мало мальски продвинутый пользователь, например вариант предложенный Ben Aceler
Войдите, чтобы комментировать.