Newsgroups: comp.os.linux.announce
From: hlu@eecs.wsu.edu
Subject: Re: URGENT WARNING for XIAFS users
Message-ID: <1993Mar15.221811.1781@tc.cornell.edu>
Date: Mon, 15 Mar 1993 22:18:11 GMT
Approved: linux-announce@tc.cornell.edu (Matt Welsh)

> 
> I think what he means is to make a kernel 0.99.7 with the patch that
> Frank Xia posted on c.o.l.a this morning. Frank says that kernel would
> be able to read xiafs partitions rendered unreadable by xfsck 0.8. I
> hope you would do that. I'm one of the unfortunate ones that are
> looked out of their linux paritions too, and all I have now is /bin
> /dev and /etc (minix) at his time, so no chance to actually compile
> the kernel with Frank's patches.
> 
> Cheers,
> 


My A: drive is not 5.25". It seems to have some problem. It probably
will take me a few days to fix it. So there is only 3.5" version on
tsx-11.


H.J.
------------------
                    Linux Bootable Root Disk [HJ release]

Introduction
------------
  This is a bootable root disk for Linux.  The kernel is 0.99 patch level 7
  with 387 emulation, minix fs, msdos fs (version 0.10 hacked for 0.99.7),
  ext fs, ext2 fs, xia fs (with fix for 0.7.3), SCSI, CD-ROM and TCP/IP
  support. There are some basic binaries on the root disk, all of which are
  linked with the C library 4. There is a light version of the shared image
  4.3.3, libc-lite.so.4.3.3, which doesn't have curses and gdbm. I don't
  have an Ethernet card to check out TCP/IP. Please consult the NET channel
  and modify /etc/*.

  NOTE: If you are using this rootdisk for the kernel 0.99 pl7 and xiafs.
        you should run "xfsck -a /dev/xxxxx" on your xiafs partitions after
        booting this rootdisk from the floppy drive first. After you have done
        that, YOU HAVE TO USE THE KERNEL ON THIS DISK TO ACCESS YOUR XIAFS
        PARTITIONS. Please read LILO docs for how to do it. You have to use
        the kernel built with Frank Xia's patch for 0.99 pl 7, which is
        appended below. THIS PATCH IS ONLY NEEDED BY THE KERNEL 0.99 pl 7.
        DON'T USE IT ON ANY OTHER KERNELS.

  This rootdisk is designed for emergency use. You can use it to recover
  from a disaster. I have used it several times. It can also be used to
  try Linux on a PC or show Linux to your friends. If you are comfortable
  with Linux, you can also use to install Linux on your PC. You have to
  know what you are doing. If you copy it to the existing Linux partition
  on your hard drive, you may overwrite the contents on your Linux
  partition. You have been warned.

  There are three users without passwords on the root disk, root, halt and
  shutdown, log in as halt or shutdown without password will halt (no delay)
  or shutdown (a few minutes delay) your computer respectively.

  You can use this disk to install a bootable root partition on your
  hard drive.
  
  The root disk is on tsx-11.mit.edu under pub/linux/GCC/rootdisk.


Distribution File Format
------------------------
  There are two versions of the root disk.  The first is in the file
  3rootdisk.z, and is for a 3.5" floppy.  The second file is 5rootdisk.z,
  and is for a 5.25" floppy.  Because the 5.25" floppy is smaller than
  the 3.5", some files are not present in the 5.25" version.

  The xia filesystem is used in this rootdisk.

  /dev directory may not be very up to date. Please consult comp.os.linux
  for proper device name and major/minor device numbers.

  Because of the lack of space on the 5.25" version, there are only a few
  free blocks left, and you may have trouble using vi.  To solve this you
  can delete any files you don't need from the root disk.

  This is a partial list of what is on the root disk.

  1. ksh 4.8
  2. gzip 1.03 (may not be present in the 5.25" version.)
  3. elvis 1.6
  4. doshell, chmod, chown, cp, ls (color), mv, rm, and ln.
  5. mount, umount, swapon and swapoff (mount 0.99.6 with NFS support from
     Rick Sladkey.).
  6. more (may not be present in the 5.25" version.)
  7. /proc based ps, free, tload, w and uptime 
  8. mkswap, mkfs/fsck (utile 1.3), mkefs/efsck, mkxfs/xfsck (0.7.2),
     mke2fs/e2fsck (0.2c) and fdisk (utile 1.3).
     (mkfs/fsck and mkefs/efsck may not be present in the 5.25" version.)
  9. expr (for /dev/MAKEDEV)
  10. proc ps 0.5
  11. grep (for /usr/etc/inet/rc.net)
  12. syslogd
  13. lilo 0.9 (only minimum stuff, please get full package as well as
      documentations yourself. in the 5.25" version, there is only a lilo.z.)

Building the Bootable Root Floppy
---------------------------------
  1. uncompress [3|5]rootdisk.Z with gzip.
  2. rawrite or dd the file to a formatted floppy disk.

  You now have a bootable floppy, which you can use to boot your system.


Installing a Bootable Root Partition on Your Hard Drive
-----------------------------------------------------
  This rootdisk is not recommended for people, who know little about
  shell script, Unix administration and some PC hardware knowledges, to
  use it to install Linux on hard drive since it lacks the necessary
  documentations due to the floppy disk space. You should get the other
  packages unless you have to use this one due to physical memory
  limitation. However, this disk is still good for emergency :-).

  There is a SLS release on tsx-11.mit.edu under pub/linux/packages/SLS
  and many other Linux FTP sites. And there is also a TAMU release.

  If you have a CR-ROM, you can try Linux/GNU/X CD-ROM distribution from
  Yggdrasil Computing, Incorporated. Please contact YCI at (510) 526-7531,
  yggdrasil@netcom.com or fax (510) 528-8508 for details.

  You can use this disk to install a bootable root partition on your
  hard drive.  You will need to create a root partition on your disk,
  using the DOS fdisk command, or another hard drive utility.

  If you are creating the partition, be sure to record its size in
  bytes.  If the partition already exists, you can find its size using
  fdisk.

  There are two fast filesystem, xiafs and ext2fs, with long filename
  support. I didn't include mkfs and mkefs in the 5.25" version since
  I am discouraging you using minix fs and ext fs.

  You should make your own decision for your hard partitions between
  xia fs and ext2 fs. I put both of them on my hard disk.

  If you want to install Linux on partition /dev/hdxx with xiafs, whose
  size is yyyy K bytes, do:

    [mkxfs|mke2fs] -c /dev/hdxx yyyyy
    mount -t [xiafs|ext2] /dev/hdxx /mnt
    cd /
    for d in *; do
	if [ $d != "proc" ]; then
		cp -av $d /mnt
	fi
    done
    cp -av .* /mnt

  Edit /mnt/etc/fstab to ensure that /dev/hdxx will be mounted as root.
  There are some examples in /mnt/etc/fstab.

  If you use the 5.25" version, you have to do this:

    cd /mnt/bin
    ln -sf gzip uncompress
    cd /mnt/etc/lilo
    /mnt/bin/uncompress lilo.z

  Lots of stuff in the 5.25" version are either missing, lacking a symbolic
  link, or gzipped to save some disk space.

  Next, use lilo to set up your hard drive to boot either Linux or DOS.
  Please read the documentation come with LILO for the details of installation.
  Here is a very simple example.

    cd /mnt/etc/lilo
    rm map boot.????
    ./lilo -r /mnt -b /dev/hdxx -i /etc/lilo/boot.b -v -v -v /vmlinux.z,/dev/hdxx

  You will also need to make the partition you wish to boot from active,
  and make all other partitions non-active.  You can do this using fdisk or
  activate in /etc/lilo. To use activate, please do

    activate device [partition]

  where device is the device name for the whole hard drive and partition is
  the partition number you want to activate. If partition is omitted, activate
  will just report the current active partition.

  You can now boot Linux from your hard drive.  Installing other packages
  should be easy, you can just mount those floppies with filesystems supported
  by kernel on them.

  This kernel should get you going, but may not be the best for your particular
  hardware configurations. You should get the kernel source and configure it
  according to your need.

  Note: If you don't like the color ls, you can make `ls -f' or `ls --no-color'
  as an alias for ls.


Booting Other OS's
---------------
  There is a file called mboot.tar.Z under pub/linux/GCC/rootdisk on
  tsx-11.mit.edu.  Running mboot from a DOS partition on your first hard
  drive will enable you to choose from a menu to boot from up to 4 partitions
  on your first hard drive.  Read the documentation in mboot.tar.z for details.


Other Linux Disks
-----------------
  The next thing you may want to do is install the Linux Base System,
  which contains many system utilities.  Please read README.basedisk
  in the base system directory for details.

  The Linux Base System is on tsx-11.mit.edu under pub/linux/GCC/basedisk.

  The only thing missing from the Linux Base System is ispell 3.0.9.
  It is in a separate file, under pub/linux/GCC/basedisk.

  You may be also interested in libdisk and gccdisk, which have the most
  current C/C++ libraries and gcc.

  Note: basedisk, libdisk and gccdisk may not be very up to date. I am
  doing my best to keep them current.


  I will try to update my root disk regularly with Linus' new kernel.

  This root disk works on my machine with 100MB IDE drive.  I don't know
  anything about your machine or SCSI.  Good luck.

  Correct me if I am wrong.  Tell me about your story.


Thanks.

H.J.
hlu@eecs.wsu.edu
03/15/93
------
From: qx@shire.math.columbia.edu (Qi Xia)
Subject: EMERGENCY: xiafs in linux-0.99.7
Message-ID: <1993Mar14.193748.7604@tc.cornell.edu>
Originator: mdw@db.TC.Cornell.EDU
Keywords: Emergency fix xiafs
Sender: news@tc.cornell.edu
Nntp-Posting-Host: db.tc.cornell.edu
Organization: Cornell Theory Center
Date: Sun, 14 Mar 1993 19:37:48 GMT
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Lines: 74
Status: RO

Hi, 

There are some inhencement in xiafs supposed to be included in official
linux 0.99.7 distribution. But when I got the distribution, I found it's
not there. As a result, xiafspgm-0.8.tar.Z I uploaded to linux sites
yesterday will not work with linux 0.99.7.
You still need xfspgm-0.7.tar.Z with xfspgm-0.7.fix which you have now,
or xfsck and mkxfs from H.J. Lu's rootdisk.

If you have run (0.8) xfsck, and your xiafs is not accessable any more,
do not panic. Apply following patch to linux-0.99.7. 
It is for linux-0.99.6/xiafs-0.7.2, but it
should work with linux-0.99.7 (patch may report "off xxx lines").
Your xiafs will be accessable again and work normally under patched
kernel. But you have to continuous using xiafspgm-0.8. (0.8) xfsck may
report "bad i_blocks" for some files. You can safely ignore it.
This will be fixed automatically, when the inhencement get into the kernel.

I will contect Linus, ask him to include the inhencement in next release.
Sorry for the confusing.

Frank Xia.

=========[xiafs-0.7pl3]=================================================
*** inode.c.org	Wed Mar 10 17:00:38 1993
--- inode.c	Wed Mar 10 18:17:51 1993
***************
*** 374,382 ****
          inode->i_rdev = raw_inode->i_zone[0];
      else {
          for (zone = 0; zone < 8; zone++)
! 	    inode->u.xiafs_i.i_zone[zone] = raw_inode->i_zone[zone];
! 	inode->u.xiafs_i.i_ind_zone = raw_inode->i_ind_zone;
! 	inode->u.xiafs_i.i_dind_zone = raw_inode->i_dind_zone;
      }
      brelse(bh);
      if (S_ISREG(inode->i_mode))
--- 374,382 ----
          inode->i_rdev = raw_inode->i_zone[0];
      else {
          for (zone = 0; zone < 8; zone++)
! 	    inode->u.xiafs_i.i_zone[zone] = raw_inode->i_zone[zone] & 0xffffff;
! 	inode->u.xiafs_i.i_ind_zone       = raw_inode->i_ind_zone   & 0xffffff;
! 	inode->u.xiafs_i.i_dind_zone      = raw_inode->i_dind_zone  & 0xffffff;
      }
      brelse(bh);
      if (S_ISREG(inode->i_mode))
***************
*** 438,446 ****
          raw_inode->i_zone[0] = inode->i_rdev;
      else {
          for (zone = 0; zone < 8; zone++)
! 	    raw_inode->i_zone[zone] = inode->u.xiafs_i.i_zone[zone];
! 	raw_inode->i_ind_zone = inode->u.xiafs_i.i_ind_zone;
! 	raw_inode->i_dind_zone = inode->u.xiafs_i.i_dind_zone;
      }
      inode->i_dirt=0;
      bh->b_dirt=1;
--- 438,449 ----
          raw_inode->i_zone[0] = inode->i_rdev;
      else {
          for (zone = 0; zone < 8; zone++)
! 	    raw_inode->i_zone[zone] = (raw_inode->i_zone[zone] & 0xff000000) 
! 	                             | (inode->u.xiafs_i.i_zone[zone] & 0xffffff);
! 	raw_inode->i_ind_zone = (raw_inode->i_ind_zone & 0xff000000)
! 	                             | (inode->u.xiafs_i.i_ind_zone   & 0xffffff);
! 	raw_inode->i_dind_zone = (raw_inode->i_dind_zone & 0xff000000)
! 	                             | (inode->u.xiafs_i.i_dind_zone  & 0xffffff);
      }
      inode->i_dirt=0;
      bh->b_dirt=1;

-- 

-- 
Send submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
