UMSDOS Problem with test10-pre2

Date: Fri Oct 13 2000 - 16:53:35 EST

Apologies in advance if this is a known problem. I've been away from kernel
hacking for about three years and just re-subscribed to lkml a couple of weeks
ago, so I may have missed something about this. But I haven't been able to find
anything in the documentation or on lkml about it. If it's in a FAQ or an
archive somewhere, don't waste bandwidth on the explanation; just point me to
the appropriate document and I'll RTFM.

I can't get the most recent kernels to boot on an IBM ThinkPad 600X using
umsdos as the root fs. *(An explanation and/or justification for using umsdos
appears at the end of this message.)* The latest version that works for me is
2.3.51. Starting with 2.3.99-pre1 it tries to mount root as msdos rather than
umsdos. Here's the relevant output from a successful 2.3.51 boot.

Linux version 2.3.51 (root@beowulf) (gcc version egcs-2.91.66 19990314/Linux
(egcs-1.1.2 release)) #3 Fri Oct 6 13:45:58 CDT 2000
On node 0 totalpages: 16639
zone(0): 4096 pages.
zone(1): 12543 pages.
zone(2): 0 pages.
Initializing CPU#0
Detected 448451051 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 447.28 BogoMIPS
Memory: 63220k/66556k available (1075k kernel code, 2948k reserved, 81k data,
164k init, 0k highmem)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
CPU: Intel Pentium III (Coppermine) stepping 01
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfd880
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Interrupt Routing Table found at 0xc00f9d70 [router type 0000/0000]
Limiting direct PCI/PCI transfers.
Linux NET4.0 for Linux 2.3
Based upon Swansea University Computer Society NET3.039
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 4096 bind 4096)
Starting kswapd v1.6
pty: 256 Unix98 ptys configured
Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 40MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xfcf0-0xfcf7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xfcf8-0xfcff, BIOS settings: hdc:DMA, hdd:pio
hd0: C/H/S=0/0/3 from BIOS ignored
hda: IBM-DARA-206000, ATA DISK drive
hdc: CRN-8241B, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: IBM-DARA-206000, 5729MB w/418kB Cache, CHS=12416/15/63, UDMA(33)
Partition check:
 hda: [PTBL] [776/240/63] hda1 hda2
Linux PCMCIA Card Services 3.1.11
  options: [pci] [cardbus] [pm]
Adding cardbus controller 0: Texas Instruments PCI1221
Yenta IRQ list 06f8, PCI irq11
Socket status: 30000010
Adding cardbus controller 1: Texas Instruments PCI1221 (#2)
Yenta IRQ list 06f8, PCI irq11
Socket status: 30000006
Intel PCIC probe: not found.
3c574_cs.c v1.08 9/24/98 Donald Becker/David Hinds,

At this point with 2.3.51 I get these lines:

UMSDOS 0.86 (compatibility level 0.4, fast msdos)
check_pseudo_root: mounted as root
check_pseudo_root: found //linux
check_pseudo_root: found sbin/init, enabling pseudo-root
UMSDOS: changed to alternate root
VFS: Mounted root (umsdos filesystem) readonly.
Freeing unused kernel memory: 164k freed

and the system finishes booting normally. But with later kernels, instead of
these last few lines I get this:

VFS: Mounted root (msdos filesystem) readonly.
Freeing unused kernel memory: 164k freed
Warning: unable to open an initial console.
Kernel panic: No init found. Try passing init= option to kernel.

and the system hangs. No mention at all of umsdos or pseudo_root. Notice that
it says it mounted root as msdos, not umsdos, so it makes sense that it can't
find init (or anything else) on that file system.

I've tried this with every combination of versions and configuration options I
can think of: the default config, a config customized for exactly my hardware,
a config with everything stripped out except the minimum necessary to boot,
configs with everything possible compiled as modules, configs with no modules at
all... I should mention here that all these ideas work fine on my desktop
system, which uses ext2 for the root fs. But among other hardware differences,
the desktop machine is a homebuilt Pentium MMX system, while the ThinkPad is a
Pentium III. So I'm not certain it's the umsdos part that's the problem.

Both systems have recent installs of Slackware 7.1 with egcs-1.1.2, and I've
upgraded binutils, modutils, etc. so that the versions are equal to or later
than what's in the latest Documentation/Changes file. It doesn't matter whether
I boot using loadlin or from a diskette using lilo; the results are the same.
(In both cases I use "root=/dev/hda2 rw" to specify where the root fs is
located.) Again, all this works with the 2.2 series (including 2.2.18pre15) and
the 2.3 series up through 2.3.51.

* I know, umsdos is not a great choice for a permanent installation. The
problem is that this is my company laptop and they don't want me fooling around
with the partition table. Umsdos lets me install Linux into a subdirectory and
I don't have to alter anything in the Windows 98 configuration to run it. Over
the next few months we expect to be installing Unix servers. Because I'm the
only one here with any significant Unix experience (about 12 years with Minix,
Linux, AIX, and HP-UX) I've been told by the I/S director that it's almost
certain I'll be both a sysadmin and the person who trains everyone else. My
plan is to install Linux on all the programmers' laptops as part of the training
class I'll be teaching. The company is gradually becoming more open to Linux;
we already have a copy of the S/390 version running on our IBM mainframe, but it
would be better if each person had a copy they could play with at home. So to
maximize my chances of being allowed to offer it to everyone who wants it, I
want to do it with as minimal an impact on the laptops' current setup as
possible. I'd be happy to stay with a 2.2 kernel, but it doesn't support our
network cards (3COM 3CCFE574BT). They appear to be supported in 2.3.51 but I
haven't gotten them to work yet, and if I'm going to use a development kernel
I'd rather go all the way to a 2.4.0 version before putting much effort into
getting the network card to work.

So, any ideas?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:26 EST