LINUX.ORG.RU

Жёсткий деск с несолькими установочными образами под разные архитектуры.

 , , ,


0

1

Есть внешний жёсткий диск, на нём 50 Гб я выделили под отдельный ext2 раздел. Как сделать его загрузочным? Но не просто поставить на него linux, а сделать ещё возможной и загрузку нескольких установочных образов с 2 архитектурами, AMD64 и i386.

☆☆☆

Последнее исправление: cetjs2 (всего исправлений: 1)

Есть внешний жёсткий диск, на нём 50 Гб я выделили под отдельный ext2 раздел.

Почему именно ext2, а не ext4 или хотя бы ext3?

Как сделать его загрузочным?

Установить загрузчик.

Но не просто поставить на него linux, а сделать ещё возможной и загрузку нескольких установочных образов с 2 архитектурами, AMD64 и i386.

Поставить Linux как раз очень просто. Да и всё остальное тоже.

После установки Linux помещаете в директорию /boot файлы с установочных образов выбранных вами дистрибутивов. Ну и прописываете их вызов в конфигурационный файл загрузчика. Если на установочных образах разных архитектур одного дистрибутива файлы имеют одинаковое название, то для каждой архитектуры нужно создать отдельную директорию и поместить туда файлы, ну либо переименовать файлы, но легко переименовать получится только образ ядра и initramfs, если установочный образ только и состоит из этих файлов, то всё уже готово, если есть ещё отдельный файл образ с корневой файловой системой или директории с пакетами, то придётся так же распаковывать initramfs этих систем и смотреть есть ли у init сценария в initramfs поддержка параметров, передаваемых ядру, в которых можно передать нестандартное имя образа корневой системы или расположение директории с пакетами, ну либо читайте документацию по данному установочному дистрибутиву. Если таких параметров нет, а всё указано довольно жёстко в init сценарии, то придётся править этот init сценарий, дабы указать в нём другое имя файла образа корневой файловой системы или указать другую директорию, в которой будут «искаться» пакеты для установки.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

Переносить в отдельную директорию типа /linux32 /linux64 править grub, указать на новый initrd,vmlinuz и перепаковывать initrd - в скрипте править корень и чего еще, ну про крайней мере в 10.04 ubuntu так было, только 50 гб тебе только на две ОС и хватит, с трудом. До правки скриптов дело не дошло,забросил, но руками загружал, работало.

ilovewindows ★★★★★
()

debian wheezy

google://debian+installation+guide+hd-media

AITap ★★★★★
()
Ответ на: комментарий от kostik87

Почему именно ext2, а не ext4 или хотя бы ext3?

Не важно, тип ФС можно и изменить.

Хм.. А можно сразу весь netinstall как RAM-диск загрузить?

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от ilovewindows

только 50 гб тебе только на две ОС и хватит, с трудом.

Разве? Установленная ОС не больше 10 Гб занимает если туда ещё и много программ поставить.

rezedent12 ☆☆☆
() автор топика

Гугли по «grub2 loopback». Пример:

menuentry "Bootable iso: debian-6.0.5-amd64-CD-1" {
        insmod part_msdos
        insmod ext2
        set root='(/dev/sdg,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        linux  /files/debian/vmlinuz iso-scan/filename=/iso/debian-6.0.5-amd64-netinst.iso
        initrd /files/debian/initrd.gz
}
menuentry "Bootable iso: debian-testing-amd64-DVD-1.iso" {
        insmod part_msdos
        insmod ext2
        set root='(/dev/sdg,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        linux  /files/debian/vmlinuz iso-scan/filename=iso/debian-testing-amd64-DVD-1.iso
        initrd /files/debian/initrd.gz
}
menuentry "Bootable iso: grml64-full_2012.05" {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        iso_path=/iso/grml64-full_2012.05.iso
        export iso_path
        kernelopts=" nobeep toram "
        export kernelopts
        loopback loop /iso/grml64-full_2012.05.iso
        set root=(loop)
        configfile /boot/grub/loopback.cfg
}
menuentry "Bootable iso: grml32-full_2012.05" {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        iso_path=/iso/grml32-full_2012.05.iso
        export iso_path
        kernelopts=" nobeep toram "
        export kernelopts
        loopback loop /iso/grml32-full_2012.05.iso
        set root=(loop)
        configfile /boot/grub/loopback.cfg
}
menuentry "Bootable iso: grml_2011.05-rc1" {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        loopback loop /iso/grml_2011.05-rc1.iso
        set iso_path=/iso/grml_2011.05-rc1.iso
        set root=(loop)
        linux  /boot/grml/linux26 apm=power-off boot=live bootid=grml201105rc1 nomce findiso=/iso/grml_2011.05-rc1.iso quiet persistent=nofiles 
        initrd /boot/grml/initrd.gz
}
menuentry "Bootable iso: ubuntu-11.04-desktop-amd64" {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        loopback loop /iso/ubuntu-11.04-desktop-amd64.iso
        set iso_path=/iso/ubuntu-11.04-desktop-amd64.iso
        set root=(loop)
        linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity iso-scan/filename=/iso/ubuntu-11.04-desktop-amd64.iso quiet splash --
        initrd  /casper/initrd.lz

}
menuentry "Bootable iso: ubuntu-11.04-desktop-i386" {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        loopback loop /iso/ubuntu-11.04-desktop-i386.iso
        set iso_path=/iso/ubuntu-11.04-desktop-i386.iso
        set root=(loop)
        linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity iso-scan/filename=/iso/ubuntu-11.04-desktop-i386.iso quiet splash --
        initrd  /casper/initrd.lz
}

menuentry "Bootable iso: ubuntu-12.04-alternative-amd64" {
        insmod part_msdos
        insmod ext2
        set root='(hd1,msdos1)'
        search --no-floppy --fs-uuid --set=root f2492ab0-ebfe-4af5-aa03-070cceea5a7d
        loopback loop /iso/ubuntu-12.04-alternate-amd64.iso
        set iso_path=/iso/ubuntu-12.04-alternate-amd64.iso
        set root=(loop)
        linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity iso-scan/filename=/iso/ubuntu-12.04-alternate-amd64.iso quiet splash --
        initrd  /casper/initrd.lz
}

З.Ы. пойду обновлю что ли свой liveusb. wheezy давно уже не testing, да и grml поновее есть.

router ★★★★★
()

вкати на него sysrescuecd. с него можно ставить amd64 и i386 gentoo-производные, deb-производные, федорку(вроде), арч(наверное)

MyTrooName ★★★★★
()
Ответ на: комментарий от cinyflo

А я думал это фантастика.

Если дистрибутив достаточно новый, то он умеет находить собственный iso'шник в виде файла и монтировать через loopback, поэтому почти все дистрибутивы можно установить через grub2

Более того, новые дистрибутивы могут грузиться и в виде dvd, и в виде диска. Ты можешь записать их на dvd, и они загрузятся, а можешь через dd записать их на внешний диск или флешку, и они всё равно загрузятся %)

router ★★★★★
()
Ответ на: комментарий от router

Если дистрибутив достаточно новый, то он умеет находить собственный iso'шник в виде файла и монтировать через loopback, поэтому почти все дистрибутивы можно установить через grub2

Если дистрибутив достаточно новый

Тогда может быть если grub2 достаточно новый?

cinyflo ★★★★★
()
Ответ на: комментарий от cinyflo

Нет. Мало через grub2 смонтировать iso, вытащить из него ядро с рамдиском и загрузить их. Нужно чтобы после этого ядро смогло найти iso, в свою очередь тже смонтировать его и дальше с ним работать. А старые дистрибутивы ищут только cdrom/dvdrom'ы.

router ★★★★★
()
Ответ на: комментарий от rezedent12

Если это поддерживает сама LiveCD система, то можно. Но это поддерживает не каждая система.

kostik87 ★★★★★
()
Ответ на: комментарий от MyTrooName

вкати на него sysrescuecd. с него можно ставить amd64 и i386 gentoo-производные, deb-производные

Как это обычно происходит?

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

как это делается с генту, написано в хендбуке.

для дебиан, man debootstrap (есть на образе sysresccd). запуск debootstrap аналогичен развертке stage3 (только он сам качает все нужные deb-ы с зеркала), потом чрутишься и доустанавливаешь ядро, загрузчик, фирмварь для сети - и можно загружаться в новую систему.

для федоры, слышал краем глаза про febootstrap.

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от rezedent12

ну да действительно 11 Гб, еще столько же в home набежало, не успел глазом моргнуть. Тогда 4 ос поставишь. Несерьёзно :)

ilovewindows ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.