From: Anders K. <and...@me...> - 2001-03-12 09:57:02
|
Hello, I spent a fair bit of time over the weekend trying to get UML to boot from an ISO image, but I had no success. Can UML load an initrd image and create the RAM filesystem necessary for booting from a CD image? Regards, --=20 Anders Karlsson |
From: Adam H. <ad...@do...> - 2001-03-12 10:05:33
|
On Mon, 12 Mar 2001, Anders Karlsson wrote: > Hello, > > I spent a fair bit of time over the weekend trying to get UML to boot > from an ISO image, but I had no success. Can UML load an initrd image > and create the RAM filesystem necessary for booting from a CD image? The last time I tried this(late january), it didn't. I have a patch, that makes uml load the initrd, and mount it, but then it stalls trying to do something on it. I haven't figured out what this something actually is. I haven't worked on it since then, due to my ISP cutting me off for a month(long story). I'll be picking back up on it soon. Please watch user-mode-linux-devel for status. ----BEGIN GEEK CODE BLOCK---- Version: 3.12 GCS d- s: a-- c+++ UL++++ P+ L++++ !E W+ M o+ K- W--- !O M- !V PS-- PE++ Y+ PGP++ t* 5++ X+ tv b+ D++ G e h*! !r z? -----END GEEK CODE BLOCK----- ----BEGIN PGP INFO---- Adam Heath <do...@de...> Finger Print | KeyID 67 01 42 93 CA 37 FB 1E 63 C9 80 1D 08 CF 84 0A | DE656B05 PGP AD46 C888 F587 F8A3 A6DA 3261 8A2C 7DC2 8BD4 A489 | 8BD4A489 GPG -----END PGP INFO----- |
From: Jeff D. <jd...@ka...> - 2001-03-12 14:59:22
|
and...@me... said: > Can UML load an initrd image and create the RAM filesystem necessary > for booting from a CD image? AFAIK, the kernel support is there. If you discover otherwise, be sure to let me know... Jeff |
From: Anders K. <and...@me...> - 2001-03-12 16:39:56
|
On Mon, Mar 12, 2001 at 11:12:24AM -0500, Jeff Dike wrote: > and...@me... said: > > Can UML load an initrd image and create the RAM filesystem necessary > > for booting from a CD image? >=20 > AFAIK, the kernel support is there. If you discover otherwise, be > sure to let me know... >=20 Jeff, I read the linux/Documentation/initrd.txt carefully as well as the linux/Documentation/ramdisk.txt file. I tried all sorts of combinations on the command line, but I could not get UML to actually say it was loading the initrd image. It always tried to find the root_fs image and I had to move that file out of the way or it would boot that instead. I copied the initrd image from the ROCK install CD and ran the following command line (as well as numerous permutations): "./linux.exe ramdisk=3D"8192" initrd=3D/vmware/test/initrd.gz root=3D/dev/rd/0 init=3D/sbin/init rw" This is what I get in the console I run the command from: tracing thread pid =3D 781 Linux version 2.4.2-1um (anders@inspiron) (gcc version 2.95.2 19991024 (release)) #1 Sun Mar 11 11:05:05 GMT 2001 On node 0 totalpages: 4096 zone(0): 0 pages. zone(1): 4096 pages. zone(2): 0 pages. Kernel command line: ramdisk=3D8192 initrd=3D/vmware/test/initrd.gz root=3D/dev/rd/0 init=3D/bin/init rw Calibrating delay loop... 34.81 BogoMIPS Memory: 16100k available Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd v1.8 pty: 256 Unix98 ptys configured block: queued sectors max/low 10560kB/3520kB, 64 slots per queue RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: enabling 8 loop devices User-mode Linux network interface 0.011 (eth0) User-mode Linux network interface 0.011 (eth1) User-mode Linux network interface 0.011 (eth2) User-mode Linux network interface 0.011 (eth3) NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 1024) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. Initializing stdio console driver Initializing software serial port version 1 devfs: v0.102 (20000622) Richard Gooch (rg...@at...) devfs: devfs_debug: 0x0 devfs: boot_options: 0x0 VFS: Cannot open root device "rd/0" or 01:00 Please append a correct "root=3D" boot option Kernel panic: VFS: Unable to mount root fs on 01:00 Then it just hangs and takes lots of CPU. If there is something you want me to try, give me a shout and I will try it. :-) Regards, --=20 Anders Karlsson e-mail: and...@me... |
From: Jeff D. <jd...@ka...> - 2001-03-13 18:19:08
|
and...@me... said: > devfs: v0.102 (20000622) Richard Gooch (rg...@at...) > devfs: devfs_debug: 0x0 > devfs: boot_options: 0x0 > VFS: Cannot open root device "rd/0" or 01:00 This appears to be saying that there is no /dev/rd/0 in whatever filesystem it has mounted on /. Since devfs is mounted there, it would appear that whatever is expected to create it isn't running. That's done by drivers/block/rd.c, which is under the control of CONFIG_BLK_DEV_RAM. So, stupid question time: did you turn on CONFIG_BLK_DEV_RAM? Jeff |
From: Anders K. <and...@me...> - 2001-03-14 08:08:41
|
On Tue, Mar 13, 2001 at 02:32:03PM -0500, Jeff Dike wrote: > This appears to be saying that there is no /dev/rd/0 in whatever > filesystem it has mounted on /. Since devfs is mounted there, it > would appear that whatever is expected to create it isn't running. > That's done by drivers/block/rd.c, which is under the control of > CONFIG_BLK_DEV_RAM.=20 >=20 > So, stupid question time: did you turn on CONFIG_BLK_DEV_RAM? >=20 > Jeff Here is a snippet from the .config file: # # Block devices # CONFIG_BLK_DEV_UBD=3Dy CONFIG_BLK_DEV_UBD_SYNC=3Dy CONFIG_BLK_DEV_LOOP=3Dy CONFIG_BLK_DEV_NBD=3Dy CONFIG_BLK_DEV_RAM=3Dy CONFIG_BLK_DEV_RAM_SIZE=3D4096 CONFIG_BLK_DEV_INITRD=3Dy I have it turned on AFAIK but it still is not happy. I re-read the initrd.txt and ramdisk.txt last night to see if I had missed something. I even tried to read the code (using gdb to see the backtrace in the hung UML and looking at the function calls in the code) but I could not see anything wrong there. The code does a mount_root() and then it tries to mount devfs. But if devfs is required to get the device-file that you will mount root from, what happens then? (It was init/main.c I was having a look in.) Regards, --=20 Anders Karlsson e-mail: and...@me... |