On 03.03.2010 02:08, Gerardo Exequiel Pozzi wrote:
Hi, just to leave in some visible place this experiment if some is interested.
My idea: remove archiso_early hook, and take the advantage of symlink /dev/disk/by-label/XYZ created by 60-persistent-storage.rules installed via udev hook, without doing other tricks.
Result: * OK: when booting in cdrom mode. * FAIL: when booting in disk mode.
The reason is because hybrid mode (via isohybrid). * The LABEL is defined at first sector of iso "sda" (simulate a MBR) also there is a fake partition "sda1" (with offset 1 [+512 bytes ahead of sda]) so you can create another partitions on the destination media. * When mount the UDF filesystem, sda is mounted and not sda1 (sda1 is just a fake part to avoid overwriting data). * There is a udev rule at 60-persistent-storage.rules that make all parent (sda in this case) ID_* env data available to childrens (sda1 in this case), so sda1 inherits the LABEL, and this data is not overwrited because blkid fail (remember sda1 is not a real partition)
Consequence: * /dev/disk/by-label/XYZ points to /dev/sda1 instead of /dev/sda. (when isohybrid offset > 0)
What works: * if offset = 0 will works, but doing this we lost the capability of create another partitions in the medium that .iso is copied (USB media) * Also works on real partition scheme (usb drive with the real MBR, and real partiton with label) * As said before if boot as cdrom.
Conclusion: * Keep with archiso_early, that is pretty simple and does not require other tools [#1]
If some is interested in changes for your personal usage, the patch is here [#2]
[#1] http://bugs.archlinux.org/task/18523 [mkinitcpio] usb_id, ata_id, scsi_id, path_id: should be added to udev install hook? [#2] https://gist.github.com/1f6f5a67008bf3b927ee
The problem with the recursive stuff might actually be in parted while other tools may be able to modify the resulting partition. Follow the syslinux mailing list for more infos on this. I'm currently trying to get some help as to how I would be able to add more partitions with offset = 0. -- Sven-Hendrik