#237410 Can not edit newly created Sun disk labels

#237410#5
Date:
2004-03-10 01:30:34 UTC
From:
To:
INSTALL REPORT

Debian-installer-version: 2004-03-09,
http://people.debian.org/~jbailey//d-i/sparc/daily/cdrom-mini.iso
uname -a: Linux refri 2.4.24-refri #1 SMP Fri Jan 16 14:06:22 CST 2004 sparc64 GNU/Linux
Date: 2004-03-09
Method:
    Booted from the CDROM mini ISO. The machine is connected directly to
    the network, no proxies intervening

Machine: Sparc Ultra Enterprise 450
Processor: 4xUltraSparc-II 480MHz
Memory: 4 GB
Root Device: SCSI, installed on fourth drive (/dev/sdd)
Root Size/partition table:

    Partitioning was carried out using the automatic option in d-i (see
    the comments further down)

    Disk /dev/sdd (Sun disk label): 27 heads, 107 sectors, 24620 cylinders
    Units = cylinders of 2889 * 512 bytes

       Device Flag    Start       End    Blocks   Id  System
    /dev/sdd1             0      2875   4152937+   1  Boot
    /dev/sdd2          2875     13371  15161472   82  Linux swap
    /dev/sdd3             0     24620  35563590    5  Whole disk
    /dev/sdd4         13371     24620  16249180+  83  Linux native

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sdd1             3.9G  280M  3.5G   8% /
    /dev/sdd4              16G   33M   15G   1% /home

Output of lspci:

    00:00.0 Host bridge: Sun Microsystems Computer Corp. Psycho PCI Bus Module
    01:00.0 Host bridge: Sun Microsystems Computer Corp. Psycho PCI Bus Module
    02:00.0 Host bridge: Sun Microsystems Computer Corp. Psycho PCI Bus Module
    03:00.0 Host bridge: Sun Microsystems Computer Corp. Psycho PCI Bus Module
    04:00.0 Host bridge: Sun Microsystems Computer Corp. Psycho PCI Bus Module
    04:01.0 Bridge: Sun Microsystems Computer Corp. EBUS (rev 01)
    04:01.1 Ethernet controller: Sun Microsystems Computer Corp. Happy Meal (rev 01)
    04:02.0 SCSI storage controller: LSI Logic / Symbios Logic 53c875 (rev 03)
    04:03.0 SCSI storage controller: LSI Logic / Symbios Logic 53c875 (rev 03)
    04:04.0 Display controller: Texas Instruments TVP4020 [Permedia 2] (rev 11)
    05:00.0 Host bridge: Sun Microsystems Computer Corp. Psycho PCI Bus Module

Base System Installation Checklist:

Initial boot worked:    [O]
Configure network HW:   [O]
Config network:         [O]
Detect CD:              [ ]
Load installer modules: [O]
Detect hard drives:     [O]
Partition hard drives:  [E]
Create file systems:    [O]
Mount partitions:       [O]
Install base system:    [E]
Install boot loader:    [E]
Reboot:                 [O]
[O] = OK, [E] = Error (please elaborate below), [ ] = didn't try it

Comments/Problems:

There were a couple of minor quirks which did not affect the
installation process, but would scare away novice users - For example,
at bootup, at the first HW detection phase, I got an "Error while
running 'modprobe -v sr_mod'". This message, as well as "Error while
running 'modprobe -v ide-cd'", appeared again, also under the title
'hardware detection', after setting up the network.

Now, for the more important points:

- At first, I was trying to set up the network incorrectly. I was
  assigned a x.x.x.20/28 IP address, and -mistakenly- was looking for
  the router in x.x.x.31, which is unreachable and produces a
  'SIOCADDRT: Network is unreachable' message. I didn't note the exact
  message, but d-i just told me ther was an error while configuring the
  network. This should probably be informed in a more granular way,
  maybe telling that 'there was a problem with the gateway you
  specified'. Using the correct network configuration, of course, solved
  the problem.

- Partitioning: The system has 4x36.4GB hard disks, I decided to install
  only in the fourth disk. If I ask the installer to 'Create new
  partition' and accept the default (36.4GB) value, I get immediately
  two error messages saying "ERROR!!! Can't have the end before the
  start!", and then "Unable to satisfy all constraints on the
  partition". This does not happen if I ask the partition to be only
  30GB - Might it have something to do with the Sun disklabel scheme?

- Partitioning: If I got the last message once, I will get it again and
  again no matter what I choose in the partitioning module. In order to
  partition my disk, I have to leave the module (with 'Go back') and get
  back in. I chose automatic partitioning. If I ask the partitioner to
  use the scheme with many partitions (/usr, /usr/local, /var, /var/mail,
  etc.), and got an error telling me there was no space to create the
  last (eigth) partition. The installer took sdd3 (which should be a
  wholedisk partition) - Of course, I cancelled the partitioning and
  proceeded with the simpler root-and-home scheme offered. This time, it
  worked correctly.

  In /var/log/partman, I got:
  (...)
  parted_server: OUT: 8   21607686144-22032207359 424521216       primary ext3       /dev/scsi/host    1/bus0/target3/lun0/part8
  parted_server: OUT: -1  22032207360-36417116159 14384908800     primary    free    /dev/scsi/host    1/bus0/target3/lun0/part-1

  The problem seems to be parted (or one of the d-i modules) not being
  able to see beyond three bits worth of partitions :(

- Install base system: I chose unstable, and I think that was my main
  mistake. After downloading all the needed packages and installing part
  of them, I got a "Base system installation error - The debootstrap
  program exited with an error (return value 127) Check
  /var/log/messages or see virtual console 3 for the details". In VC3, I
  had:

  Errors were encountered while processing:
    exim4-daemon-light
    mailx
    at
    exim4
    exim4-config
    exim4-base
  /usr/sbin/debootstrap: 1: sleep: not found

  Looking at /var/log/mesages, I found several cases such as:

  dpkg: dependency problems prevent configuration of exim4-daemon-light:
   exim4-daemon-light depends on libgnutls7 (>= 0.8.12-2); however:
    Package libgnutls7 is not installed.
  dpkg: error processing exim4-daemon-light (--configure):
   dependency problems - leaving unconfigured

  Once again, this might have been caused by my choice of 'unstable'. I
  will try to do this installation again with 'testing' and report back
  on this bug (although it might take some days).

- After failing on the base system install (although mostly everything
  was in place), whenever I chose to install the boot loader, the
  installer tried again to install the base system, and bombed in its
  way out. No kernel was installed in the system.

I eventually gave up and booted the system using a kernel of my own
(that was on another of the machine's hard drives). I was not asked to
go through the second phase of the installation, although I ran it with
'base-config'. The machine is running perfectly now.

All in all, d-i performed _way_ better than what I expected in Sparc,
even with the few glitches (some of them attributable to me, I agree).
Congratulations!

#237410#10
Date:
2004-03-10 09:55:41 UTC
From:
To:
I know nothing about Sun disklabels, but it must be something either
with them or with their support in parted.

Acording to parted something wrong happened to the partition table.
In this situation 'Undo all changes' would also help.

I can not guess what is wrong wrong in the log?

Do you know if/how parted works with Sun disklabels?

Anton Zinoviev

#237410#15
Date:
2004-03-10 15:21:08 UTC
From:
To:
Anton Zinoviev dijo [Wed, Mar 10, 2004 at 11:55:41AM +0200]:

Ummm... Well, support in Parted seems to be stable for Sun
machines. From Debian's parted package description:

  (...)
  Parted currently supports DOS, Mac, Sun, BSD, GPT, MIPS and PC98
  disklabels/partition tables, as well as a 'loop' (raw disk) type
  which allows use on RAID/LVM.

Parted's page in GNU [1] tells +- the same:

  Supported disk labels: raw access (useful for RAID and LVM), MS-DOS
  partition tables, Intel GPT partition tables, MIPS partition tables,
  PC98 partition tables, Sun and BSD disk labels and Macintosh
  partition maps.

I cannot find authoritative information on this, but I found a post to
debian-sparc [2] stating that there can -at least- be 15 partitions on
a Sparc disklabel under Linux - and even if Linux can't handle more
than that (because of minor number exhaustion - /dev/sda15 is (8,15),
/dev/sdb is (8,16) ), the Sun disklabel format does allow for more.

I found a _very_ old message in NetBSD [3] where it mentions having
this limitation, but I would expect it to be gone by now.

I tried to -just for the sake of it- create over 8 partitions using
fdisk - I got this right away:

  Command (m for help): p

  Disk /dev/sdc (Sun disk label): 27 heads, 107 sectors, 24620 cylinders
  Units = cylinders of 2889 * 512 bytes

     Device Flag    Start       End    Blocks   Id  System
  /dev/sdc3             0     24620  35563590    5  Whole disk

  Command (m for help): n
  Partition number (1-8):

...So it seems this limit is -at least somehow- real. I will look for
further information, but if it is real, at least the installer should
not try to create over seven partitions (plus wholedisk), right?

After the eight partition (/dev/scsi/host1/bus0/target3/lun0/part8 -
Excuse me for the extra spaces in what I pasted, blame my terminal)
was created, the next partition that parted tries to create is
/dev/scsi/host1/bus0/target3/lun0/part-1 - This seems like an overflow
for a signed three-bit value. (now, why would it be signed? :-/ )

I don't know. I don't usually deal with that kind of machines, I got
someone to lend it to me. :-(

[1] http://www.gnu.org/software/parted/parted.html

[2] http://lists.debian.org/debian-sparc/2002/debian-sparc-200208/msg00034.html

[3] http://mail-index.netbsd.org/netbsd-bugs/1996/08/05/0003.html

#237410#20
Date:
2004-03-10 15:57:29 UTC
From:
To:
Ummm...

About the partitions limit: I found this in fdisk/fdisksunlabel.h (in
source package util-linux):

typedef struct {
   /* (... Many parameters before it) */
   struct sun_partition {
	  uint32_t start_cylinder;
	  uint32_t num_sectors;
   } partitions[8];
   unsigned short magic;      /* Magic number */
   unsigned short csum;       /* Label xor'd checksum */
} sun_partition;

And in the Kernel tree (2.6.3), in fs/partitions/sun.c:

int sun_partition(struct parsed_partitions *state, struct block_device *bdev)
{
        /* ... */
        struct sun_disklabel {
	        /* Once again, lots of other parameters... */
		struct sun_partition {
		       __u32 start_cylinder;
		       __u32 num_sectors;
                } partitions[8];
		unsigned short magic;      /* Magic number */
		unsigned short csum;       /* Label xor'd checksum */
        } * label;

So... Well, even if the Sun disklabel allows (or so they say) for more
partitions, it doesn't look like we will be able to do so without
changes to important parts of code that (I think ;-) ) were written
like that for a reason.

I will look also into this, but I think that only the disk we will
boot from requires a proper Sun disklabel. Maybe the installer could
suggest using a different type of disklabel if it is not going to be
the boot disk.

...Let me check how this is managed by the BSDs. I am sure I installed
OpenBSD once in a Sparc with over 10 partitions.

Greetings,

#237410#25
Date:
2004-03-10 17:03:19 UTC
From:
To:
...Searching a bit further on how this is done in OpenBSD, I found
something. First of all, I must note that -by a long shot- I am no C
hacker, I can somehow understand parts of code, but that's about it.

NetBSD does support 16 partitions per Sun disklabel, as told in the
message I quoted in a previous mail. OpenBSD imported this feature in
December 1996, as can be seen in revision 1.5 [1]. The changes can be
found in [2], and are quite simple: If the systemwide maximum number
of partitions per unit (defined in [3], set to 22 in a regular OpenBSD
build) is greater than 8, SUNXPART (I assume it to mean 'Sun eXtended
PARTitions) is defined to the number of extra partitions, and this is
stored just before the disk rotational speed in the disklabel.

Now, back to Linux, fs/partitions/sun.c: After the 128-byte 'info'
field, we have a 292 byte long area with very sparse data (id and
flags, both unsigned chars, eight times, and many spare spaces). This
292 bytes are conspicously similar to the area used in OpenBSD for
storing the extended partitions information:

struct sun_disklabel {				/* total size = 512 bytes */
       char	     sl_text[128];
       u_long	     sl_xpsum;		/* additive cksum, [sl_xpmag,sl_xxx1) */
       u_long	     sl_xpmag;		   /* "extended" magic number */
       struct sun_dkpart sl_xpart[SUNXPART];  /* "extended" partitions, i through p */
       char   sl_xxx1[292-8-(8*SUNXPART)];    /* [292] including sl_x* */
       u_short sl_rpm;				       /* rotational speed */
(...)
};

...Anyway, support _could_ be added to fdisk/cfdisk, parted, the
kernel and whatelse to support over eight partitions in Sparc. This
would surely be a good thing, but I don't think Sarge should wait for
this. This only demonstrates we should presently limit to eight
partitions per disk on this platform (or, as I suggested, try to use
non-Sun disklabel formats if the disk does not have to be booted
from).

...And start bugging Linus for including this support. Hmmm... I think
we will wait a long time for that :)

Greetings,

[1] http://www.openbsd.org/cgi-bin/cvsweb/src/sys/arch/sparc/include/sun_disklabel.h

[2] http://www.openbsd.org/cgi-bin/cvsweb/src/sys/arch/sparc/include/sun_disklabel.h.diff?r1=1.5&r2=1.4&f=h

[3] http://www.openbsd.org/cgi-bin/cvsweb/src/sys/sys/disklabel.h?rev=1.24&content-type=text/x-cvsweb-markup

#237410#30
Date:
2004-03-11 12:21:07 UTC
From:
To:
Hi Gunnar,

Thanks a lot for you report and investigations.  I think that now I
have enough information to fix the installer for Sun disk labels.

1. Linux and parted support up to 7 partitions (8 with the whole disk
   partition).  Indeed, this is not going to be changed.

2. However the problem is that you discovered an unknown bug in the
   support of sun disk labels in libparted.  Namely when libparted
   creates a new empty Sun disk label, no partition can be added to
   it.  In order to edit the partition table one has to write it to
   the disk and then reopen it.  This bug can not be detected with
   parted because parted always writes the new partition table to the
   disk and reopens it for the consecutive editing commands.

No this is OK -- parted gives number -1 to all free spaces.

Anton Zinoviev

#237410#55
Date:
2004-12-14 18:35:30 UTC
From:
To:
$ dd count=100k if=/dev/zero of=sundisk
102400+0 records in
102400+0 records out
52428800 bytes transferred in 1.383157 seconds (37905169 bytes/sec)
$ cc -lparted -ldl suntest.c
$ ./a.out sundisk
Error: Can't have the end before the start!
Error: Can't have the end before the start!
Error: Unable to satisfy all constraints on the partition.

There are no problems if another label type is used instead of "sun".

Anton Zinoviev

#237410#60
Date:
2004-12-20 00:05:39 UTC
From:
To:
CCing Andrew and the parted upstream devel list. Andrew, this is a debian bug
report (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=237410), which i am
investigating right now.

I had a quick look at this and the there is a fundamental flaw in the below
program, not sure if it is worked around or not by the fuzzy partition
geometry logic.

The sun partition geometry constrain code shows :

        SunDiskData*    disk_data = disk->disk_specific;
        PedSector       block = dev->sectors * dev->heads;

        if (!ped_alignment_init (&start_align, 0, block))
                return NULL;
        if (!ped_alignment_init (&end_align, -1, block))
                return NULL;
        if (!ped_geometry_init (&max_geom, dev, 0, disk_data->length))
                return NULL;

        return ped_constraint_new (&start_align, &end_align, &max_geom,
                                   &max_geom, 1, dev->length);

Where the end_align constraint is used only for the strict version, and
removed if it doesn't work.

What this means is :

  1) The sun partition needs to be aligned on cylinder (called blocks here)
     boundaries, it should start at the first sector of a cylinder and end at
     the last of it, if possible.

  => your code as a device which defaults to a geometry of CHS= 800,4,32,
     thus needing partitions on cylinders of 160 sectors boundaries. 1-10 is
     no such geometry, but 0-159 or 160-319 is, but this doesn'y seem to
     change anything to the result below.

  2) data from the disk is used in two occasions in the above code. In one
     form, it is the dev->CHS stuff, and the other is dev->length. The second
     place  where this happens is disk_data->length, which reads the
     disk_specific sun partition table, either from disk or from the raw
     partition.

Not yet found the problem, but hoping that CCing upstream will help, and will
be searching more later on.

Friendly,

Sven Luther

#237410#73
Date:
2021-04-06 00:15:24 UTC
From:
To:
[image: Amazing Gift Ideas For You And Familly]
<https://namepod.monster/shoes20>

Shop Canvas Shoes for Women & Men discover the latest styles at Temogear.
[image: New Spring Fashion Women Canvas Shoes]
<https://namepod.monster/shoes6>
ORDER YOURS NOW <https://namepod.monster/shoes6>

Shop our collection of sneakers, shoes . Find your fit for the field or the
street at the Temogear.
You may also like:
[image: Woman Platform Shoes] <https://namepod.monster/shoes23>
BUY NOW <https://namepod.monster/shoes23>
[image: Canvas Shoes Woman] <https://namepod.monster/shoes47>
BUY NOW <https://namepod.monster/shoes47>
If you no longer wish to receive our emails, click the link below: Unsubscribe
<https://namepod.monster/shoes20/unsubscribe>
Zolatee Store - 234 Front Street, Floor 3, San Francisco, CA 94111

#237410#78
Date:
2021-10-18 13:48:46 UTC
From:
To:
*Science Qoutes T-Shirts*


<https://engineerfish.shop/cuem-Engineer-Definition-Funny-Engineering-T-Shirt?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/cuem-Stand-Up-For-Science-Like-Magic-But-Real-T-Shirt?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/cuem-DUCT-TAPE-IT-CANT-FIX-STUPID-BUT-IT-CAN-MUFFLE-THE-SOUND?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/cuem-Disaster-movie-government-ignoring-scientist-T-Shirt?color=black&product=men-s-t-shirt>


<https://engineerfish.shop/cuem-Once-You-Go-Black-You-Never-Go-Back-Funny-T-Shirt?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/cuem-There-are-two-types-of-people-in-this-world?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/Primary-elements-of-humor-Teacher-T-shirt?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/What-Part-of-Dont-You-Understand?color=black&product=men-s-t-shirt>


<https://engineerfish.shop/Dear-Math-Grows-Up-Mathematics-T-shirts?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/Im-an-engineer-to-save-time?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/62144637-Im-a-teacher-to-save-time-lets-just-assume-that-im-never-wrong?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/Tech-Support-Checklist-Computer-Repair?color=black&product=men-s-t-shirt>


<https://engineerfish.shop/Lets-Have-a-Moment-of-Science?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/62069664-I-wear-this-shirt-periodically?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/Technically-the-glass-is-always-full?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/Science-like-magic-but-real?color=black&product=men-s-t-shirt>


<https://engineerfish.shop/THINK-LIKE-A-PROTON-AND-STAY-POSITIVE?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/62066654-Never-Forget-Pluto?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/forget-princess-i-want-to-be-a-scientist?color=black&product=men-s-t-shirt>
<https://engineerfish.shop/I-Lost-an-electron?color=black&product=men-s-t-shirt>

Are you looking for a special gift for a friend, teacher, and family member
who really loves science? This is the perfect place for You. This is for
science lovers shirts.
*Link Store : View More <https://engineerfish.shop/>*
* Click Here To Unsubscribe
<https://docs.google.com/forms/d/e/1FAIpQLSdn5_M4o55TU7Riv61zGZ2AsipgxNWzT0GaIlMY2YYsPQfBjA/viewform?usp=sf_link>*