FS#14919 - Vfat support to initrd on installcd.
Attached to Project:
Release Engineering
Opened by Robert David (robert.david) - Tuesday, 02 June 2009, 11:44 GMT
Last edited by Aaron Griffin (phrakture) - Tuesday, 01 December 2009, 20:51 GMT
Opened by Robert David (robert.david) - Tuesday, 02 June 2009, 11:44 GMT
Last edited by Aaron Griffin (phrakture) - Tuesday, 01 December 2009, 20:51 GMT
|
Details
It is very handy to have archlinux (and another linuxes)
instaled on flash drive (when there is no cdrom), but not
everyone use ext2/3 on it. It is pretty easy to coppy livecd
content to flashdrive and add syslinux option, but initrd
doesnt find root because it forces to mount the flash as
ext2. I think that it would be better to set this to auto
and add most common kernel filesystem modules
(vfat,dosfs,ext2) used on flash disks.
|
This task depends upon
Closed by Aaron Griffin (phrakture)
Tuesday, 01 December 2009, 20:51 GMT
Reason for closing: Implemented
Additional comments about closing: Fixed in git
Tuesday, 01 December 2009, 20:51 GMT
Reason for closing: Implemented
Additional comments about closing: Fixed in git
We have had vfat always as module in initrd images, with new boot device detection we don't mount explicit a ext2 FS anymore, we use:
eval $(fstype < /dev/archiso 2>/dev/null)
if [ -n "${FSTYPE}" -a "${FSTYPE}" != "unknown" ]; then
if mount -r -t "${FSTYPE}" /dev/archiso /bootmnt >/dev/null 2>&1; then
...........
So @Robert: would you please test 2009.08-beta1 (http://build.archlinux.org/isos/) if it fits your request without we have to modify anything...
Used archlinux-2009.08-core-i686.img.
Inflated to 2gb vfat partition.
On boot, /dev/sda is internal HDD and /dev/sdb is USB HDD.
/dev/archiso is created, but not mounted. (To be able to enter the prompt mode, I used boot option: archisolabel=INVALID)
*************************
ramfs$ fstype < /dev/sda1
FSTYPE=ext3
FSSIZE=858.....
ramfs$ fstype < /dev/sdb1
FSTYPE=unknown
FSSIZE=0
ramfs$ mount -r -t vfat /dev/sdb1 /bootmnt
ramfs$ echo /bootmnt/isom*
/bootmnt/isomounts
*************************
so sdb1 can be mounted, but fstype not detecting it's type
fstype actually does not detect fat32....
If you want to make the archiso boot on a fat32 device, you're going to have to hand edit the scripts or post patches. I have no interest in doing any work to support this.
***************
eval $(fstype < /dev/archiso 2>/dev/null)
if [ -z "${FSTYPE}" -o "${FSTYPE}" = "unknown" ]; then
echo "WARNING: /dev/archiso found, but the filesystem type is unknown. Assuming vfat"
FSTYPE=vfat
fi
if mount -r -t "${FSTYPE}" /dev/archiso /bootmnt >/dev/null 2>&1; then
if [ -e "/bootmnt/isomounts" ]; then
echo "SUCCESS: Mounted archiso volume successfully."
else
echo "ERROR: Mounting was successful, but the isomounts file does not exist."
exit 1
fi
else
echo "ERROR: Failed to mount /dev/archiso"
exit 1
fi
***************
http://projects.archlinux.org/?p=archiso.git;a=commitdiff;h=fd93e7c9bd614a026f1d661f359012a4c1e080d7
However, I think this problem results from your "archisolabel=INVALID" setting. What is /dev/archiso symlinked too? Is your usb device ACTUALLY labeled "INVALID" ?
archisolabel=INVALID was just to get interactive console to test fstype. With correct archisolabel /dev/archiso was created, not mounted and kernel panic as the result.
Are we going to wait or implement hacky solutions? I think we should switch to the mount way of recognizing fs types which makes use of blkid. Actually, why not just let mount do its thing? Is there any gain in making fstype probe for the fs type when mount is better at that?
Is there any objetion in changing this label to ARCH_XXXXXX ?
-export LABEL="ARCHISO_$(pwgen -n 8 1 | tr [a-z] [A-Z])"
+export LABEL="ARCH_$(pwgen -n 6 1 | tr [a-z] [A-Z])"
With this, users only need to edit the label in your target media without changing grub/menu.lst.
push -> close task :)