Arch.iso на флешке. Вернём потеряные гигабайты

И еще забыл.
С помощью gdisk создаем гибридный MBR, где первым назначаем раздел, который будет виден в винде (код 0c).
Lupus pilum mutat, non mentem.
инструкция подробная, но, как оказалось, я почти так и делал, за исключением варианта с efi - тестировать не на чем и это отошло на второй план...все устраивало, за исключением пункта меню в livecd для тестирования железных ресурсов, тест памяти мало интересовал, хотя тоже был бы не лишний...посему лепил на флешку не iso-образ, а его потроха и пытался запустить загрузчик его родной через граб...удалось его стартануть - появлялась верхняя строка, но потом вываливало ошибку ...вот, а сам процесс инсталляции из граба запускался на ура и винда все видела - в этом плане проблем не существовало
jim945, а почему gdisk а не fdisk?
gdisk что то умеет что в fdisk не возможно сделать?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
gdisk что то умеет что в fdisk не возможно сделать?
Гибридные таблицы разделов.
Lupus pilum mutat, non mentem.
jim945
Что только народ не делает...
А стоит просто установить арч на флешку и в нем пакет arch-install-scripts.
Все. Проблема решена.
о, когда в первый раз читал это, то просто пробежал глазами по буквам без осмысления, а оно таки так! только по утру сообразил, что торможу...в памяти всплыл этот пост вместе со смыслом )))
скрипт - дело хозяйское, а идея правильная...у меня arch с fluxbox-ом и некоторыми пакетами занимает всего 1.3 гектара!, так что еще и место останется
спасибо
jim945
Ну и рецепт для русского в консоли от Natrio, был где-то на форуме
Оно и в вике есть
GitHub, ArchWiki, AUR
jim945
В общем все не так сложно.
Образ арча будет лежать просто в ФС. В меню будут доступны варианты запуска для х32 и х64 систем.
Можно сделать, чтобы этот образ лежал в том же разделе, что виден в винде, можно создать для его хранения другой раздел.

Итак. Берем флешку.
1. Стираем с нее все разделы.
dd if=/dev/zero of=/dev/sdX bs=512 count=1

2. Создаем на флешке GPT таблицу разделов с помощью gdisk.
Создаем разделы.
а. Раздел BIOS boot partition - для загрузки на обычном биос.
б. Раздел EFI System - для загрузки в EFI.
в. Раздел для данных. Только он будет виден в винде. В нем можно хранить iso и файлы граба.
г. По желанию. Отдельный раздел для iso и файлов граба. При его использовании предыдущий раздел будет свободным. Но тогда новый образ арча можно будет скопировать только в линуксе.

3. Создаем ФС.
б. fat16 или 32.
в. fat32 ил ntfs. (на 2Гб хватит fat32).
г. любой, поддерживаемый грабом.

4. Монтируем раздел, где будет храниться образ арча (например в /mnt/data) и EFI-раздел (например в /mnt/efi).
5. Устанавливаем граб по Вики
а. Для биос.
grub-install --boot-directory=/mnt/data/boot /dev/sdX
б. Для EFI.
grub-install --boot-directory=/mnt/data/boot --efi-directory=/mnt/efi --target=x86_64-efi --removable

6. Создаем файл /mnt/data/boot/grub/grub.cfg с содержимым отсюда

7. Копируем установочный образ арча в /mnt/data

Все размонтируем. Готово!

Отличная инструкция, но про инсталяцию GRUB надо добавить:
а. Для биос.
grub-install --boot-directory=/mnt/data/boot /dev/sdX
если вы загружены в BIOS системе
grub-install --target=i386-pc --recheck --debug --boot-directory=/mnt/data/boot /dev/sdX
если вы загружены в UEFI системе
б. Для EFI.
grub-install --boot-directory=/mnt/data/boot --efi-directory=/mnt/efi --target=x86_64-efi --removable
Считаю, что топик надо прибить !!!
С позволения уважаемого jim945 выложу его инструкцию дополненную мною для загрузки чего хочешь с помощью GRUB.
Я делал на флешке 8 GB, но это способ может быть применен на любой. В конце мы получим флешку состоящую из трех разделов с GRUB, способную грузиться в любой системе будь то BIOS или UEFI и один из разделов виден в любой Windows.
Работаем в любом Linux, желательно Arch :).

Итак. Берем флешку.
1. Стираем с нее все разделы.

dd if=/dev/zero of=/dev/sdX bs=512 count=1

2. Создаем на флешке GPT таблицу разделов с помощью gdisk и делаем гибридную MBR.
Создаем разделы по порядку, в скобках номера разделов:
а(1). Раздел EFI System - для загрузки в EFI, туда поставим GRUB для UEFI (в gdisk надо сначала сместиться на 162 блок):
- сектора с 162 по 2047
- код EF00
б(2). Раздел для данных. Только он будет виден в Windows. В нем храним iso, файлы GRUB и всё что хотим загрузить с помощью GRUB. Также здесь хранятся просто данные (в gdisk надо сначала сместиться на 2048 блок):
- сектора с 2048 до конца
- код 0700
в(3). Раздел BIOS boot partition - для загрузки на обычном биос, туда поставим GRUB для BIOS:
- сектора с 34 по 161
- код EF02
Делаем гибридную MBR, в ней отображаем только раздел с данными, вводим 2 !!! На остальные вопросы отвечаем NO !!!

3. Создаем ФС на разделах.
а(1). ФС FAT16 (mkfs.fat /dev/sdX1)
б(2). ФС NTFS (mkfs.ntfs -Q -L myCoolDiskName /dev/sdX2)
в(3). не форматируем !!!!

4. Монтируем раздел, где будет храниться образ арча (например mount /dev/sdX2 /mnt/data) и EFI-раздел (например mount /dev/sdX1 /mnt/efi).

5. Устанавливаем ДВА GRUBa по Вики, что бы можно было грузиться везде:
а. Для BIOS.

grub-install --boot-directory=/mnt/data/boot /dev/sdX

если вы загружены в BIOS системе.

grub-install --target=i386-pc --recheck --debug --boot-directory=/mnt/data/boot /dev/sdX

если вы загружены в UEFI системе.

б. Для EFI.

grub-install --boot-directory=/mnt/data/boot --efi-directory=/mnt/efi --target=x86_64-efi --removable
7. Создаем файл /mnt/data/boot/grub/grub.cfg и mnt/data/boot/grub/menu.cfg, показываю мои файлы в описании понятно что я могу грузить и что где лежит:
grub.cfg:

. $prefix/menu.cfg

menu.cfg:

## Установка поддержки видео режима
insmod vbe # для BIOS
insmod efi_gop # для UEFI
insmod efi_uga # для UEFI

## Загрузка шрифта и загрузка графической среды
insmod font
if loadfont ${prefix}/fonts/unicode.pf2
then
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
set locale_dir=$prefix/locale
set lang=ru_RU
insmod gettext
terminal_output gfxterm
fi

insmod part_msdos # модуль для распознавания таблицы разделов жесткого диска
set default=0 # выбранный пункт по умолчанию
set timeout=-1 # здесь время отображения меню значение -1 для отключения таймера

## Настройка цветов
set color_normal=white/black
set color_highlight=black/white

## Загрузка ArchLinux
dir=/images
insmod regexp # для шаблонов * в именах файлов
probe -s root_uuid -u $root # получаем UUID для подстановки в img_dev=
for iso in $dir/archlinux-*-dual.iso ; do # ищем образ(ы) Arch по шаблону
if [ ! -f "$iso" ] ; then continue; fi # только если образ существует
regexp -s build 'archlinux-(.+)-dual' "$iso" # получаем из имени образа дату сборки
for arch in i686 x86_64 ; do # делаем для обеих архитектур
menuentry "Arch Linux ISO $build $arch" --source="\
loopback loop $iso
probe -s isolabel -l loop
linux (loop)/arch/boot/$arch/vmlinuz archisolabel=\$isolabel img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$iso earlymodules=loop
initrd (loop)/arch/boot/$arch/archiso.img"
done
done

## Загрузка ArchBang
submenu "ArchBang" {
probe -s root_uuid -u $root
menuentry "ArchBang_x86_64" {
set isofile="/images/archbang_x86_64.iso"
loopback loop1 $isofile
#probe -s isolabel1 -l loop1
linux (loop1)/arch/boot/x86_64/vmlinuz archisolabel=ARCHBANG img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$isofile earlymodules=loop1
initrd (loop1)/arch/boot/x86_64/archiso.img
}
menuentry "ArchBang_i686" {
set isofile="/images/archbang_i686.iso"
loopback loop2 $isofile
#probe -s isolabel2 -l loop2
linux (loop2)/arch/boot/i686/vmlinuz archisolabel=ARCHBANG img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$isofile earlymodules=loop2
initrd (loop2)/arch/boot/i686/archiso.img
}
}

## Загрузка Evolution
menuentry "Evolution-64bit" {
set isofile="/images/evolution_64bit.iso"
loopback loop3 $isofile
probe -s isolabel3 -l loop3
linux (loop3)/arch/boot/x86_64/vmlinuz archisolabel=Evolution-201503-64bit img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$isofile #earlymodules=loop3
initrd (loop3)/arch/boot/x86_64/archiso.img
}

## Загрузка Parted Magic
submenu "Parted Magic" {
set default_settings="edd=on vga=normal"
set live_settings="boot=live eject=no"
set linux_64="/pmagic/bzImage64"
set linux_32="/pmagic/bzImage"
set default=2
menuentry "Parted Magic Live_64"{
set isofile="/images/pmagic_2015_05_04.iso"
loopback loop4 $isofile
linux (loop4)$linux_64 $default_settings $live_settings
initrd (loop4)/pmagic/initrd.img (loop4)/pmagic/fu.img (loop4)/pmagic/m64.img
}
menuentry "Parted Magic Live_32"{
set isofile="/images/pmagic_2015_05_04.iso"
loopback loop4 $isofile
linux (loop4)$linux_32 $default_settings $live_settings
initrd (loop4)/pmagic/initrd.img (loop4)/pmagic/fu.img (loop4)/pmagic/m32.img
}
}

## Загрузка Runtu
submenu "Runtu" {
set default_settings="locale=ru_RU.UTF-8 console-setup/layoutcode=ru noeject noprompt --"
menuentry "Runtu Lite" {
set live_media_path=/boot/runtu/lite
linux $live_media_path/vmlinuz boot=casper live-media-path=$live_media_path $default_settings
initrd $live_media_path/initrd.lz
}
menuentry "Runtu XFCE" {
set live_media_path=/boot/runtu/xfce
linux $live_media_path/vmlinuz boot=casper live-media-path=$live_media_path $default_settings
initrd $live_media_path/initrd.lz
}
}

## Загрузка Memtest86
submenu "Memtest86+" {
menuentry "Memtest86+ 32_v2" {
linux16 /boot/memtest/memtest.bin
}
menuentry "Memtest86+ 64 UEFI" {
archroot=$root
regexp -s root '\((.+)\)' "$cmdpath"
chainloader ($archroot)/boot/memtest/BOOTX64.EFI
}
}

## Загрузка Plop
menuentry "Plop Boot Manager" {
linux16 /boot/plpbt.bin
}

## Перезагрузка компьютера
menuentry "System restart" {
echo "System rebooting..."
reboot
}
## Выключение компьютера
menuentry "System shutdown" {
echo "System shutting down..."
halt
}

8. Копируем;
- установочный образы арча и других систем в /mnt/data/images/
- файлы Memtest в /mnt/data/boot/memtest/
- файлы Ploop в /mnt/data/boot/
- и т.д.
9. Можно накидать любых образом и систем, главное правильно прописать их загрузку в menu.cfg :)

Все размонтируем. Готово! Всем удачи !!!
P.S. Я наконец сделал чего мне так давно не хватало - загрузку и из BIOS и из UEFI !!!
P.P.S. Я думаю эту инструкцию надо вынести, чтобы все видели.
 
Зарегистрироваться или войдите чтобы оставить сообщение.