From: Neil Holmes <neil.holmes@zoom.co.uk>
To: Riley Williams <rhw@InfraDead.Org>
Cc: Linux 8086 <linux-8086@vger.kernel.org>
Subject: Re: Elks Distribution
Date: 26 May 2002 07:26:50 +0100 [thread overview]
Message-ID: <1022394411.2055.3.camel@nhthinkpad> (raw)
In-Reply-To: <Pine.LNX.4.21.0205252208120.15697-200000@Consulate.UFP.CX>
I will, indeed, look very closely at your remarks as I move forward. I
am particularly interested by the partition.c.
I'll keep everyone posted.
Many Thanks
Neil
On Sat, 2002-05-25 at 23:55, Riley Williams wrote:
> Hi Neil.
>
> > It sounds like your distribution is in advance of that which I have
> > produced thus far Richard.
> >
> > My first "stable" version is ready now. I am not sure what the
> > procedure is here but I have attached a zip file EDE.zip to this
> > email which contains two floppy image files for install disk one
> > and disk two.
> >
> > I would be interested to hear how it runs elsewhere.
> >
> > Here are some notes on what to expect.
> >
> > - I have tested it on 80286 and 80386 machines.
> > - I recommend creating a dos partition before starting (at least 20Mb)
> > - The install will create a 20Mb ELks /dev/bda1
> > - This first version will only install to /dev/bda1
> >
> > DON'T TRY IT UNLESS YOU HAVE A BLANK SYSTEM TO PLAY WITH
>
> Some thoughts regarding the above which you may wish to consider:
>
> 1. If the target partition has to be fixed, then it would make more
> sense to select /dev/bda4 as the ELKS partition to use, as MSDOS
> (and most other operating systems) allocate starting at the low
> end of the numbers.
>
> 2. The ideal would be to have it parse the partition table looking
> for a suitable partition, where "suitable" is defined as being
>
> a. Smaller than 31M (the claimed limit of the file system
> format used for ELKS, and
>
> b. Of partition type 80 hex (the "Old Minix" partition that ELKS
> uses for its filesystem).
>
> I've added a command to the elkscmd CVS tree that deals with point 2b
> above (look for partype.c in the disk_utils directory) and the source
> is enclosed for reference. It takes the desired partition code as a
> command-line parameter, so is generic in that sense. It also checks both
> /dev/hda and /dev/sda if it can't find /dev/bda so in that sense is not
> ELKS-specific either.
>
> Best wishes from Riley.
> ----
>
> /* partype v1.0.0 Partition type locator
> * Copyright (C) 2002, Riley H Williams G7GOD,
> * Released under the GNU General Public Licence, version 2 only.
> *
> * This program searches the partition table of the primary hard drive for
> * a partition with a particular hex code for the partition type. It only
> * searches the four primary partitions, not logical partitions.
> *
> * If it finds any partitions of the specified type, it displays the name
> * of the lowest numbered partition on stdout.
> *
> * On completion, it returns one of the following error codes:
> *
> * 0 No partition with the specified type was found.
> *
> * 1 Partition /dev/bda1 has the specified type.
> * 2 Partition /dev/bda2 has the specified type.
> * 3 Partition /dev/bda3 has the specified type.
> * 4 Partition /dev/bda4 has the specified type.
> *
> * 65 Partition /dev/hda1 has the specified type.
> * 66 Partition /dev/hda2 has the specified type.
> * 67 Partition /dev/hda3 has the specified type.
> * 68 Partition /dev/hda4 has the specified type.
> *
> * 129 Partition /dev/sda1 has the specified type.
> * 130 Partition /dev/sda2 has the specified type.
> * 131 Partition /dev/sda3 has the specified type.
> * 132 Partition /dev/sda4 has the specified type.
> *
> * 252 The raw drive is not seekable.
> * 253 Neither /dev/hda nor /dev/bda is available.
> * 254 An invalid partition type was specified.
> * 255 Usage message displayed.
> *
> * Note that the error code only indicates the FIRST partition in the
> * sequence listed above that is of the relevant type.
> */
>
> #include <stdio.h>
>
> unsigned char digit(char ch)
> {
> if (ch >= '0' && ch <= '9')
> return ch - '0';
> else if (ch >= 'A' && ch <= 'F')
> return ch + 10 - 'A';
> else if (ch >= 'a' && ch <= 'f')
> return ch + 10 - 'a';
> else
> return 0;
> }
>
> int main(int argc,char **argv)
> {
> unsigned char table[64];
> FILE *fp;
> char *ptr = argv[1], *drive = "/dev/bda";
> unsigned char n, partition = 0, result = 0;
>
> if (argc != 2) {
> fprintf(stderr, "Usage: %s <type>\n\n", *argv);
> fprintf(stderr, "Where <type> is the hexadecimal partition type required\n");
> exit(255);
> }
> while (*ptr) {
> partition *= 16;
> partition += digit(*ptr++);
> }
> if (!partition) {
> fprintf(stderr, "ERROR 1: Invalid partition type: %02X (%s)\n",
> partition, argv[1]);
> exit(254);
> }
>
> if ((fp = fopen(drive,"rb")) == NULL) {
> drive[5] = 'h';
> if ((fp = fopen(drive,"rb")) == NULL) {
> drive[5] = 's';
> if ((fp = fopen(drive,"rb")) == NULL) {
> fprintf(stderr, "ERROR 2: Can't open raw drive.\n");
> fprintf(stderr, " Searched /dev/hda - /dev/sda - /dev/bda only.\n");
> exit(253);
> }
> }
> }
> if (fseek(fp,0x1c0,SEEK_SET)) {
> fprintf(stderr, "ERROR 3: Can't seek to partition table in /dev/bda\n");
> exit(252);
> }
> for (n=0; n<64; n++)
> table[n] = fgetc(fp);
> for (n=4; n; n--)
> if (table[16*n-14] == partition)
> result = n;
> if (result) {
> printf("%s%d\n",drive,result);
> switch (drive[5]) {
> case 's':
> result += 64;
> case 'h':
> result += 64;
> case 'b':
> break;
> }
> }
> exit(result);
> }
next prev parent reply other threads:[~2002-05-26 6:26 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200205242123.WAA08977@eddie.loc>
2002-05-25 20:52 ` Elks Distribution Neil Holmes
2002-05-25 22:39 ` Stefan de Konink
2002-05-25 22:55 ` Riley Williams
2002-05-26 6:26 ` Neil Holmes [this message]
2002-05-26 8:00 ` Riley Williams
2002-05-26 8:07 ` Neil Holmes
2002-05-26 9:50 ` Riley Williams
2002-05-26 15:27 ` Riley Williams
2002-05-26 12:52 ` pauln
2002-12-18 20:08 ELKS distribution Gábor Lénárt
[not found] <Pine.LNX.4.33.0206100912170.8487-100000@zeus.edeclaracion.com>
2002-06-10 15:22 ` ELKS Distribution Daniele D'Elia
2002-06-10 15:35 ` Miguel Bolanos
-- strict thread matches above, loose matches on Subject: below --
2002-06-10 14:29 Daniele D'Elia
[not found] <Pine.LNX.4.21.0205302112040.15697-100000@Consulate.UFP.CX>
2002-06-01 0:25 ` Elks Distribution Blaz Antonic
2002-05-31 16:13 Neil Holmes
2002-05-30 16:47 Neil Holmes
2002-05-30 7:40 neil.holmes
2002-05-28 21:01 Neil Holmes
2002-05-28 22:47 ` Stefan de Konink
2002-05-29 6:40 ` neil.holmes
2002-05-30 11:40 ` Stefan de Konink
2002-05-30 11:03 ` Riley Williams
2002-05-30 19:38 ` Stefan de Konink
2002-05-30 18:47 ` Riley Williams
2002-05-30 19:35 ` neil.holmes
2002-05-31 5:34 ` Neil Holmes
2002-05-30 18:19 ` Blaz Antonic
2002-05-30 11:57 ` Stefan de Konink
2002-05-30 19:18 ` Blaz Antonic
2002-05-28 17:44 Neil Holmes
[not found] <Pine.LNX.4.21.0205280728170.15697-100000@Consulate.UFP.CX>
2002-05-28 15:13 ` Javier Sedano
2002-05-28 5:30 Neil Holmes
2002-05-28 5:30 Neil Holmes
2002-05-28 5:29 Neil Holmes
2002-05-28 6:27 ` Riley Williams
2002-05-28 7:14 ` Neil Holmes
2002-05-28 11:12 ` Stefan de Konink
2002-05-28 9:53 ` Neil Holmes
2002-05-28 11:39 ` Alan Cox
2002-05-28 10:51 ` Neil Holmes
2002-05-28 12:01 ` Alan Cox
2002-05-28 11:03 ` Neil Holmes
2002-05-28 15:35 ` Javier Sedano
2002-05-29 8:57 ` Pascal Bellard
2002-05-29 10:17 ` Javier Sedano
2002-05-28 23:11 ` Riley Williams
2002-05-28 23:35 ` Dan Olson
2002-05-29 6:26 ` neil.holmes
2002-05-29 10:33 ` Javier Sedano
2002-05-29 18:31 ` Riley Williams
2002-05-29 23:44 ` Dan Olson
2002-05-30 7:51 ` Stefan de Konink
2002-05-30 13:01 ` Harry Kalogirou
2002-05-30 9:38 ` Javier Sedano
2002-05-29 6:31 ` neil.holmes
2002-05-27 13:46 Neil Holmes
2002-05-27 20:34 ` Michael McConnell
2002-05-28 5:33 ` Neil Holmes
2002-05-28 6:46 ` Michael McConnell
2002-05-28 6:57 ` Neil Holmes
2002-05-28 6:59 ` Neil Holmes
2002-05-27 12:22 Re : " Javier Sedano
2002-05-27 18:52 ` Riley Williams
2002-05-27 20:23 ` Stefan de Konink
2002-05-28 6:11 ` Riley Williams
2002-05-25 21:48 Neil Holmes
2002-05-25 23:22 ` Stefan de Konink
2002-05-26 13:30 ` Nicholas Knight
2002-05-25 23:31 ` Stefan de Konink
2002-05-25 22:06 ` Neil Holmes
2002-05-25 23:41 ` Stefan de Konink
2002-05-25 22:15 ` Neil Holmes
2002-05-25 23:47 ` Stefan de Konink
2002-05-25 22:22 ` Neil Holmes
2002-05-25 23:51 ` Stefan de Konink
2002-05-27 16:59 ` Dan Olson
2002-05-26 14:37 ` Blaz Antonic
2002-05-26 6:45 ` Neil Holmes
2002-05-26 15:01 ` Blaz Antonic
2002-05-27 12:30 ` Javier Sedano
[not found] ` <3CF33E41.6ED906FB@ascend.com>
2002-05-28 15:46 ` Javier Sedano
2002-05-28 16:30 ` Pascal Bellard
2002-05-24 13:17 Neil Holmes
2002-05-24 14:16 ` Javier Sedano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1022394411.2055.3.camel@nhthinkpad \
--to=neil.holmes@zoom.co.uk \
--cc=linux-8086@vger.kernel.org \
--cc=rhw@InfraDead.Org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.