You are not logged in.

#1 2008-09-08 21:01:31

big_gie
Member
Registered: 2005-01-19
Posts: 637

mkinitcpio problem

Hi,

I have a really old laptop I want to use so I installed Arch on it. But then it was tricky...

The laptop is a Sony Vaio, Pentium II, 400 MHz, 64MB of ram. There is no CD, only one USB port. The machine does not support booting from USB.

The only way to boot something is with the already installed grub and the /boot partition (debian 3 is already on the machine...).

I can't touch the hard drive: some files I can't delete are on it... So I installed Arch on a 1GB USB key from inside VirtualBox. Then, I copied the kernel and initrd from the usb key to the /boot partition, added a new entry in grub, and Arch is booting (I use root=/dev/disk/by-uuid/...).

But it is reeeeeeeeeeally slow to boot. Slower then debian which loads everything, and way slower than slax (which I tried on it too) which uses udev too. It seems udev is really slow, both the initrd's udev and the main udev.

So I tried to strip the mkinitcpio.conf file for faster loading. But whatever I do, if I remove the 'udev' hook, I cant boot with:
Root device /dev/disk/by-uuid/... doesnt exist, attempting to create it
ERROR: Failed to parse block device name for /dev/disk/by-uuid/..
...

In this post: http://bbs.archlinux.org/viewtopic.php?id=53014 the poster stated that he removed the udev hook and he only had to have his drive's controller... But I can't do that. After a successful boot, I did "lsmod" and 'mkinitcpio -M' to get a list of modules which I included in the MODULES= list without success. The /dev/disk/by-uuid/... nodes are not created...

Am I doing something wrong or the node cannot be created without udev? Are the nodes create by loading the module or by only through udev?

Is it possible to create the node myself? Without passing through udev?

Here are my config files:

grub's menu.lst:

title  Arch Linux
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/91ec050d-d1df-4685-8ca7-14e7e9dcf6b4 ro
initrd /boot/kernel26.img

mkinitcpio.conf:

# Original, with ext3 added (doesnt work without udev)
#MODULES="ext3 pata_acpi ata_generic ahci ata_piix"
# Original, with usb stuff added (doesnt work without udev)
#MODULES="usbcore usb_storage ehci_hcd uhci_hcd scsi_mod sd_mod ext3 pata_acpi ata_generic ahci ata_piix"
# lsmod modules and mkinitcpio -M (identical) (doesnt work without udev)
#MODULES="ext3 pata_acpi ata_generic ahci ata_piix ac battery button dock processor thermal agpgart intel-agp i2c-piix4 i2c-core evdev gameport pcspkr psmouse serio_raw meye v4l1-compat videodev eeprom_93cx6 sony-laptop pci_hotplug shpchp rtc-cmos rtc-core rtc-lib ac97_bus snd-mixer-oss snd-pcm-oss snd-seq-oss snd-seq-device snd-seq-midi-event snd-seq snd-hwdep snd-page-alloc snd-pcm snd-rawmidi snd-timer snd snd-mpu401-uart snd-opl3-lib snd-ac97-codec snd-ymfpci soundcore pata_acpi ata_generic scsi_mod ata_piix mac80211 rtl8180 cfg80211 pcmcia_core rsrc_nonstatic yenta_socket usb-storage usbcore uhci-hcd ieee1394 ohci1394 sd_mod"
MODULES="ext3 ata_piix libata pata_acpi ide-core ide-pci-generic piix ieee1394 ohci1394 rtl8180 pcmcia_core rsrc_nonstatic yenta_socket scsi_mod sd_mod usbcore uhci-hcd usb-storage mac80211 cfg80211 jbd"
BINARIES=""
FILES=""

# Original, works, slow
#HOOKS="base udev autodetect pata scsi sata usb keymap filesystems"

# Does not work
#HOOKS="base udev pata sata usb keymap"
#HOOKS="base pata sata usb keymap resume filesystems"
#HOOKS="autodetect base udev sata usb keymap resume filesystems"

#HOOKS="base udev pata sata usb keymap resume"
HOOKS="base pata sata usb keymap resume"

Thanx for your help...

Offline

#2 2008-09-09 01:16:12

carlocci
Member
From: Padova - Italy
Registered: 2008-02-12
Posts: 368

Re: mkinitcpio problem

big_gie wrote:

Hi,
So I tried to strip the mkinitcpio.conf file for faster loading. But whatever I do, if I remove the 'udev' hook, I cant boot with:
Root device /dev/disk/by-uuid/... doesnt exist, attempting to create it
ERROR: Failed to parse block device name for /dev/disk/by-uuid/..

heh, udev is the one in charge of making the symlinks in /dev/disk/by-uuid/.
You have to specify the actual device in the form /dev/sdXY in your /boot/grub/menu.lst (or at boot time editing the line)
with X being a letter a primary master, b primary slave etc
Y partition number beginning from 1
Also I remember seeing UUID=thepartitionuuid in someone's menu.lst, so that might work.


Return your mkinitcpio.conf to the original state
and I think you should be able to boot with just these.
MODULES="ext3 pata_acpi ata_generic ahci ata_piix"
HOOKS="base pata keymap resume"

Kudos for all your experiments: hope this helps

Last edited by carlocci (2008-09-09 01:16:27)

Offline

#3 2008-09-09 01:35:19

big_gie
Member
Registered: 2005-01-19
Posts: 637

Re: mkinitcpio problem

Thanx for your response carlocci!

Using UUID for fstab/root= works great. Since Arch is install on a USB key, its safer to use this since the UUID will always be the same, whatever the machine I put the key in. You may read: http://wiki.archlinux.org/index.php/Per … ice_naming

As for the the mkinitcpio.conf, I'll try your suggestion. I wanted to reset my USB key to a previous backup using dd but I overwrote the backup file with a non-working state... sad So I'm reinstalling now. I'll post back after I try your suggestion.

Thanx again!

Offline

#4 2008-09-09 13:52:09

carlocci
Member
From: Padova - Italy
Registered: 2008-02-12
Posts: 368

Re: mkinitcpio problem

wops, I missed the booting from usb part, you will need the usb hook too

Offline

#5 2008-09-09 21:06:31

big_gie
Member
Registered: 2005-01-19
Posts: 637

Re: mkinitcpio problem

Even like that, the nodes don't gets created... I can't get it to work without udev hook.

It all gets down to: udev is reeeeally slow.
1min for slax
5min for arch!!!

What can be wrong??

Offline

#6 2008-09-09 23:44:59

carlocci
Member
From: Padova - Italy
Registered: 2008-02-12
Posts: 368

Re: mkinitcpio problem

I probably wasn't clear enough.
You should try to edit your menu.lst: instead of root=/dev/disk/by-something/UUID (which is created at boot everytime by udev), you should put something a la root=UUID=yourdeviceuuid (provided that grub actually supports UUID and it doesn't simply translate it to /dev/disk/by-UUID/something)

Offline

Board footer

Powered by FluxBB