[Решено] multiboot usb... не грузится в RAM archlinux-2014.10.01-dual.iso

Всем здравия :)
озадачился созданием multiboot usb, где ос будут грузится в RAM из iso образов.
делал по wiki и столкнулся со следующей проблемой:
для archlinux-2014.10.01-dual.iso возникает следующая ошибка:
:: Mounting /run/archiso/cowspace (tmpfs) filesystem, size=75%...
losetup: /run/archiso/bootmnt/arch/x86_64/airootfs.sfs: failed to set up loop device: No such file or directory
:: Mounting '' to '/run/archiso/sfs/airootfs'
Waiting 30 seconds for device ...
ERROR: '' device did not show up after 30 seconds...
	Falling back to interactive prompt
	You can ty to fix the problem manually, log out when you are finished
sh: can't access tty: job control turned off
[rootfs /]#
в свою очередь archlinux-2014.08.01-dual.iso и xubuntu-14.04.1-desktop-amd64.iso грузятся без проблем в RAM.
разделы usb
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         8390655   4.0 GiB     EF00  EFI System
   2         8390656        39847935   15.0 GiB    0700  Microsoft basic data
   3        39847936        62750686   10.9 GiB    8300  Linux filesystem
efi раздел обозван ARCH_201410

вот grub.cfg
insmod part_gpt
insmod part_msdos
insmod fat
insmod memdisk

insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus

insmod font
if loadfont ${prefix}/fonts/unicode.pf2
then
    insmod gfxterm
    set gfxmode=auto
    set gfxpayload=keep
    terminal_output gfxterm
fi

set timeout=10
set default=0
# path to the partition holding ISO images (using UUID)
set imgdevpath="/dev/disk/by-uuid/E85C-4C4D"

menuentry '[loopback]archlinux-2014.04.01-dual.iso' {
	set isofile='/boot/iso/archlinux-2014.04.01-dual.iso'
	loopback loop $isofile
	linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201404 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop nomodeset
	initrd (loop)/arch/boot/x86_64/archiso.img
}

menuentry '[loopback]archlinux-2014.08.01-dual.iso' {
        set isofile='/boot/iso/archlinux-2014.08.01-dual.iso'
        loopback loop $isofile
        linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201408 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop nomodeset
        initrd (loop)/arch/boot/x86_64/archiso.img
}

menuentry '[loopback]archlinux-2014.10.01-dual.iso' {
	set isofile='/boot/iso/archlinux-2014.10.01-dual.iso'
	loopback loop $isofile
	linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201410 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop nomodeset
	initrd (loop)/arch/boot/x86_64/archiso.img
}

menuentry '[loopback]xubuntu-14.04.1-desktop-amd64' {
	set isofile='/boot/iso/xubuntu-14.04.1-desktop-amd64.iso'
	loopback loop $isofile
	linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale=en_US.UTF-8
	initrd (loop)/casper/initrd.lz
}

P.S. если закатать iso с помощью dd на usb, то с загрузкой проблем не возникает.
Это потому, что UUID неправильно руками прописали.

А я ведь советовал сделать это автоматически – GRUB может сам прочесть UUID и сам его подставить.

Специально скачал и проверил свежий образ Арч – всё работает.
Natrio
Это потому, что UUID неправильно руками прописали.
если бы я UUID неправильно скопировал, то предыдущие бы образа не загружались...
Natrio
А я ведь советовал сделать это автоматически – GRUB может сам прочесть UUID и сам его подставить
попробовал Ваш способ, груб загрузился, iso разбил по битности, однако с archlinux-2014.10.01-dual.iso тот же самый результат...
archlinux-2014.04.01-dual.iso и archlinux-2014.08.01-dual.iso загрузились ^^
проверил md5hash образа, скаченного с помощью торрента с https://www.archlinux.org/download/ - правильный
что-то я пропустил?
Initramfs генерировали? Какие хуки стоят?
Hanabishi
Initramfs генерировали? Какие хуки стоят?
это надо узнать у создателей archlinux-2014.10.01-dual.iso ^^
Если другие образы грузятся, значит GRUB работает правильно.
У меня он аналогично работает и с новым образом, значит GRUB тут ни при чём, и новый образ тоже нормально загружается таким способом.

Если вы перепробовали всё, но этот образ не может найти себя на флешке – остаётся только ваша флешка :)
Я вижу, что разбита она довольно странным образом (мягко говоря). По-видимому, ЭТО и сбивает с толку скрипты в initramfs нового образа:
frankyboy
Number  Start (sector)    End (sector)  Size       Code  Name
1 2048 8390655 4.0 GiB EF00 EFI System
2 8390656 39847935 15.0 GiB 0700 Microsoft basic data
3 39847936 62750686 10.9 GiB 8300 Linux filesystem
efi раздел обозван ARCH_201410
Дело даже не в том, что вы зачем-то выделили под EFISYS целых 4GB, хотя и 1MB хватило бы. Настоящая проблема в другом.
Если заглянуть ВНУТРЬ образа, можно узнать его метки тома (вам это делать не обязательно, можете поверить мне на слово):
# losetup -P -f /media/sdb1_K100N/images/archlinux-2014.10.01-dual.iso
# lsblk -f /dev/loop0
NAME      FSTYPE  LABEL       UUID                                 MOUNTPOINT
loop0     iso9660 ARCH_201410 2014-10-01-05-00-04-00               
├─loop0p1 iso9660 ARCH_201410 2014-10-01-05-00-04-00               
└─loop0p2 vfat    ARCHISO_EFI A05B-32C8
# losetup -d /dev/loop0
Спрашивается, ЗАЧЕМ было присваивать служебному разделу EFI такую же метку ARCH_201410, как у образа?!
Нет ничего удивительного в том, что скрипт из initramfs образа, пытаясь найти свой образ по метке (Параметр ядра archisolabel=ARCH_201410 помните? Вот по нему и ищет.), находит вместо него EFISYS-раздел вашей флешки.

Все остальные образы загружаются правильно, потому что у них метки, соответственно, не совпадают с этой :)

Лечение, как вы наверное уже догадались, простое – убрать метку ARCH_201410 с раздела, или, по крайней мере, поменять её на такую, чтобы ни с чем не совпадала.

P.S.
И нет, не надо присваивать метку образа какому бы то ни было другому разделу, иначе история повторится.
Natrio
Лечение, как вы наверное уже догадались, простое – убрать метку ARCH_201410 с раздела, или, по крайней мере, поменять её на такую, чтобы ни с чем не совпадала.
blkid /dev/sdc
/dev/sdc: UUID="2014-10-01-05-00-04-00" LABEL="ARCH_201410" TYPE="iso9660" PTUUID="61219cb3-1c47-4540-8786-f64605302498" PTTYPE="gpt" 
спасибо за помощь! проблема была в том, что, видимо, перед созданием загрузочной флэшки, я боролся с uefi и запись от образа iso арча осталась в начале флэшки, что видно из вывода blkid /dev/sdc, и что, собственно, и препятствовало монтированию airootfs, так как label ARCH_201410 был также и у самой флэшки :)
что также объясняет почему другие образа арча грузились нормально :)
frankyboy
Hanabishi
Initramfs генерировали? Какие хуки стоят?
это надо узнать у создателей archlinux-2014.10.01-dual.iso ^^
Извините, протупил, думал не запускается уже установленная с этого образа система)
frankyboy
Natrio
Лечение, как вы наверное уже догадались, простое – убрать метку ARCH_201410 с раздела, или, по крайней мере, поменять её на такую, чтобы ни с чем не совпадала.
blkid /dev/sdc
/dev/sdc: UUID="2014-10-01-05-00-04-00" LABEL="ARCH_201410" TYPE="iso9660" PTUUID="61219cb3-1c47-4540-8786-f64605302498" PTTYPE="gpt" 
спасибо за помощь! проблема была в том, что, видимо, перед созданием загрузочной флэшки, я боролся с uefi и запись от образа iso арча осталась в начале флэшки, что видно из вывода blkid /dev/sdc, и что, собственно, и препятствовало монтированию airootfs, так как label ARCH_201410 был также и у самой флэшки :)
что также объясняет почему другие образа арча грузились нормально :)
Невнимательность - причина половины бед)
 
Зарегистрироваться или войдите чтобы оставить сообщение.