Hello. The Insyde Software version JA.M1.31 of the Basic Input Output System (BIOS) for my Hewlett Packard Pavilion, ZE1110 notebook computer, purchased in the year 2002, apparently does not include booting from a Universal Serial Bus (USB) drive. But nevertheless by other means I have been trying to boot my computer from a Gnome Partition Editor (GParted) live Compact Disc (CD) in my external CD writer, which is cabled by a USB cable to my computer.
Question 1: Will any of the procedures discussed at SDB:Live USB stick - openSUSE on the Internet work for a BIOS which does not list a USB drive as bootable? Booting a USB stick by writing booting files onto it is not my goal here. Nevertheless there might be some overlap in the procedures discussed there with the procedure needed to be boot an external CD writer cabled to a computer using a USB cable.
The general idea of what I have been pursuing from https://help.ubuntu.com/community/BootFromUSB is to first boot my computer from Linux kernel and initialize Random Access Memory (RAM) (initrd) files obtained from in my case an openSUSE Live CD that are stored on a Virtual File Allocation Tables (VFAT) partition of my hard-disk drive, since my computer’s BIOS does allow the booting of my computer from the hard-disk drive. I obtained the openSUSE Live CD from software.opensuse.org: Download openSUSE 11.4 by clicking on “Live KDE” (K Desktop Environment) there, etc. I have been trying a procedure which is a combination of the procedures discussed at mainly openSUSE Lizards and How to edit openSUSE live CD | desire.sk. The idea is to modify initrd to initdrd for VFAT partitions and USB using the procedure provided by Masim “Vavai” Sugianto at openSUSE Lizards for openSUSE 11.0 GM so as to avoid the error associated with the error message “Couldn’t fine Live image configuation file;” and although the procedure there is for making a “live” USB stick which uses VFAT, I assume it to be at least partly, if not completely applicable to instead the VFAT portion of a hard-disk drive. But from How to edit openSUSE live CD | desire.sk that procedure needs to be modified to accomodate the Compressed Loop Image Container File System (clicfs) I think originally by Stephen Kulow (openSUSE Lizards, one reference by Stephen Kulow on clicfs) and the Lempel-Ziv-Markov chain Algorithm (LZMA) compression apparently used in the openSUSE-11.4 Live CD.
Question 2: I could open the initrd archive with the command “gzip -dc /mnt/iso/boot/i386/loader/initrd | cpio -i” in the midst of other commands below and even saw Roman-letter characters inside the extracted file “include”. So I assume that the initrd archive in an openSUSE-11.4 Live CD is a copy in/out (cpio) archive compressed with the program gzip instead of using the LZMA. Is that correct?
I obtained the Linux kernel and initrd files from the openSUSE-11.4 Live CD and according to openSUSE Lizards modified the file “include” which was obtained after executing the above gzip command. The initrd substitute archive initrdud was built using the commands below. To prepare for booting the following stanza was appended inside the file /boot/grub/menu.lst:
title USB drive
root (hd0,5)
kernel /unpacked/boot/vmlinuz-2.6.37.1-1.2-default init=/unpacked/init
initrd /unpacked/boot/initrdud
boot
.
Then with the GParted Live CD in my external CD writer, which was USB-cabled to my computer, I rebooted my computer, selected “USB drive” from the boot menu, and subsequently saw these messages:
Failed to execute /init
Failed to execute /unpacked/init …Attempting defaults… Kernel panic - not syncing: No init found
…
[2.156840] Call Trace:
[2.156956] <c02060e3>] try_stack_unwind+0x173/0x190
[2.157046] <c0204e8f>] dump_trace+0x3f/0xe0
[2.157132] <c020614b>] show_trace_log_lvl+0x4b/0x60
[2.157217] <c0206178>] show_trace+0x18/0x20
[2.157305] <c05f9945>] dump_stack+0x6d/0x72
[2.157390] <c05f99a1>] panic+0x57/0x150
[2.157472] <c0201192>] init_post+0x72/0xc0
[2.157562] <c0910930>] kernel_init+0x168/0x1c1
[2.157662] <c0203526>] kernel_thread_helper+0x6/0x10
But I suspect “No init found” may not have been true. I think “Failed to execute /unpacked/init” likely means that the init file in the directory /unpacked was found due to the explicit instruction “init=/unpacked/init” in the above kernel line in the file /boot/grub/menu.lst. I guess that the response “Failed to execute /init” from the computer could have been an attempt to execute the init file in either /unpacked/sbin or else /unpacked, in each case obtained from the initrd archive of the openSUSE-11.4 Live CD.
Question 3a: Why did the GParted Live CD not boot my computer or the programs on that Live CD not begin to run? Or, perhaps equivalently, what am I missing, some kernel parameters in the kernel line in the above last stanza of /boot/grub/menu.lst similar to in Ubuntu Linux “kernel …vmlinuz-… file=/cdrom/preseed/ubuntu.seed boot=casper noprompt cdrom-detect/try-usb=true persistent” (http://help.ubuntu.com/community/BootFromUSB)?
Question 3b: If so, what should that kernel line including the appropriate kernel parameters in /grub/boot/menu.lst be?
Question 3c: And assuming some similarity with the kernel parameters for Ubuntu Linux, from what directory should an opensuse.seed file be found inside the openSUSE Live CD?
Okay, now I present some detailed commands I entered as a superuser or root user with some mkdir commands historically entered quite some time ago. These commands were entered on a partition formatted using the VFAT file system. The /mnt subdirectories were probably all located on the openSUSE-11.4 system partition written using the ext4 file system.
mkdir /mnt/iso
mkdir /mnt/iso_unpacked_clicfs/
mkdir /mnt/iso_sub
mkdir /unpacked
mount -o loop openSUSE-11.4-KDE-LiveCD-i686.iso /mnt/iso
cd unpacked
gzip -dc /mnt/iso/boot/i386/loader/initrd | cpio -i
In the file linuxrc in ../unpacked I changed the top line #!/bin/bash to #!/bin/bash -x.
I had the files syslinux.cfg and config.isoclient from the initrd archive in ../unpacked.
In the file ../unpacked/include I added the lines prefixed by --->, but did not input the --->s.
function CDDevice {
#/…/ changed to find config.isoclient on vfat disk.
----> find /lib/modules//kernel/fs/nls/nls -exec insmod () ; #for vfat
----> find /lib/modules//kernel/fs/fat/.ko -exec insmod () ; #for vfat
----> insmod /lib/modules//kernel/drivers/usb/storage/usb-storage.ko -exec insmod () ; #for USB
----> sleep 5 #Fix me. Do this in a proper way.
clicfs /mnt/iso/openSUSE-kde-11.4-livecd-kde-read-only.i686-2.8.0 /mnt/iso_unpacked_clicfs/
ls /mnt/iso_unpacked_clicfs/ (had the computer response “fsdata.ext3”)
mount -o loop /mnt/iso_unpacked_clicfs/fsdata.ext3 /mnt/iso_sub/
cp /mnt/iso_sub/lib/modules//kernel/fs/nls/nls_cp437.ko lib/modules//kernel/fs/nls
cp /mnt/iso_sub/lib/modules//kernel/fs/nls/nls_iso8859-1.ko lib/modules//kernel/fs/nls
cp -r /mnt/iso_sub/lib/modules//kernel/fs/fat lib/modules//kernel/fs/
find . | cpio -o -H newc | gzip -q > …/initrdud (The computer’s response to this command was “96803 blocks”.)
Afterward I found the archive initrdud in the directory above /unpacked and eventually copied it to the directory /unpacked/boot.
cp /mnt/iso_sub/boot/vmlinuz-2.6.37.1-1.2-default vmlinuz-2.6.37.1-1.2-default
Eventually I copied the kernel file vmlinuz-2.6.37.1-1.2-default to /unpacked/boot.