Festplatten Geometrie korrigieren

piotr

Well-Known Member
Hallo

Ich habe FreeBSD 8.4 installiert:
Code:
# uname -a
FreeBSD bsd.ch.bluee.net 8.4-RELEASE-p4 FreeBSD 8.4-RELEASE-p4 #0: Mon Sep  9 23:00:58 UTC 2013  root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386

Es ist sicher kein Problem, aber es wundert mich, wie ich Festplatten geometry korriegieren kann?
Code:
Oct 21 23:56:33 bsd kernel: GEOM: da0s1: geometry does not match label (16h,63s != 255h,63s).
Oct 21 23:56:33 bsd kernel: GEOM: da0s3: geometry does not match label (16h,63s != 255h,63s).
Oct 21 23:56:33 bsd kernel: GEOM: da0s4: geometry does not match label (16h,63s != 255h,63s).

Kann das gpart, fdisk etc. von einer Live CD z.B mfsBSD tun?
 
Hi piotr,

das kannst du ignorieren, wenn du willst:)

Diese Meldungen werden ab irgend einer neueren FreeBSD Version nicht mehr angezeigt, weil die Leute eh nicht wissen was sie damit tun sollen. Du müsstest hier das 'bsdlabel' umschreiben. Hab das schon lange nicht mehr gemacht, weis nicht ob ich das noch zustande bringe, Wenn du willst können wir das mal Probieren. Poste mal die ausgabe von:

# bsdlabel -A $dev
 
Code:
#  bsdlabel -A $dev
dev: Undefined variable.

# bsdlabel /dev/da0s1
# /dev/da0s1:
8 partitions:
#  size  offset  fstype  [fsize bsize bps/cpg]
  a:  51199281  0  4.2BSD  0  0  0
  c:  51199281  0  unused  0  0  # "raw" part, don't edit
bsdlabel: partition c doesn't cover the whole unit!
bsdlabel: An incorrect partition c may cause problems for standard system utilities

# gpart show
=>  63  167772097  da0  MBR  (80G)
  63  2017  - free -  (1M)
  2080  51199968  1  freebsd  [active]  (24G)
  51202048  32  - free -  (16k)
  51202080  4095968  2  freebsd  (2G)
  55298048  32  - free -  (16k)
  55298080  2047968  3  freebsd  (1G)
  57346048  32  - free -  (16k)
  57346080  20783072  4  freebsd  (9.9G)
  78129152  89643008  - free -  (42G)

# fdisk -s
/dev/da0: 10443 cyl 255 hd 63 sec
Part  Start  Size Type Flags
  1:  2080  51199968 0xa5 0x80
  2:  51202080  4095968 0xa5 0x00
  3:  55298080  2047968 0xa5 0x00
  4:  57346080  20783072 0xa5 0x00
 
Hi piotr,

kannst du nochmal ein # bsdlabel -A /dev/da0s1 'nachschieben'.
Da sollte in etwa sowas drinstehen:


Code:
        # /dev/da0s1:
        type: SCSI
        disk: da0s1
        label:
        flags:
        bytes/sector: 512
        sectors/track: 63
        tracks/cylinder: 16
        sectors/cylinder: 1008
        cylinders: 50793
        sectors/unit: 51199968
        rpm: 3600
        interleave: 1
        trackskew: 0
        cylinderskew: 0
        headswitch: 0          # milliseconds
        track-to-track seek: 0  # milliseconds
        drivedata: 0

        8 partitions:
        #        size  offset    fstype  [fsize bsize bps/cpg]
          a:  51199968  0    4.2BSD
          c:      *       0    unused        0    0        # "raw" part, don't edit


        ---------- oder ----------------------

        # /dev/da0s1:
        type: SCSI
        disk: da0s1
        label:
        flags:
        bytes/sector: 512
        sectors/track: 63
        tracks/cylinder: 255
        sectors/cylinder: 16065
        cylinders: 3187
        sectors/unit: 51199968
        rpm: 3600
        interleave: 1
        trackskew: 0
        cylinderskew: 0
        headswitch: 0          # milliseconds
        track-to-track seek: 0  # milliseconds
        drivedata: 0

        8 partitions:
        #        size  offset    fstype  [fsize bsize bps/cpg]
          a:  51199968  0    4.2BSD
          c:      *       0    unused        0    0        # "raw" part, don't edit
 
Code:
# bsdlabel -A /dev/da0s1
# /dev/da0s1:
type: ESDI
disk: ad0s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 77504
sectors/unit: 78125000
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0  # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0

8 partitions:
#  size  offset  fstype  [fsize bsize bps/cpg]
  a:  51199281  0  4.2BSD  0  0  0
  c:  51199281  0  unused  0  0  # "raw" part, don't edit
bsdlabel: partition c doesn't cover the whole unit!
bsdlabel: An incorrect partition c may cause problems for standard system utilities
 
Hi piotr,
wenn du folgendes änderst, sollte die GEOM Meldung verschwinden:

tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 4863

das ist alles nur kosmetischer Natrur:
63*16=1008
63*255=16065
78125000/1008=77504
78125000/16065=4863

wie die sectors/unit zustande kommen kann icht nicht nachvollziehen: 78125000*512= 40 000 000 000 das entspricht 37,3GiB
Andere Platte?
 
Zuletzt bearbeitet:
Das Problem kommt daher, dass die alten Partitiontools wie fdsik(8) und bsdlabel(8) buggy waren und teilweise Schrott schrieben. Gerade Geometrien waren seit ca. 1998 gar nicht mehr ihre Stärke, ihr Maximum lag bei Medien mit ~37GB. Daher kam auch im seligen Sysinstall dieser dumme Hinweis der angeblich falschen Geometrie, wenn die Platte größer als ~37GB war. Die GEOM-Meldung ist nicht gefährlich und evtl. bei FreeBSD 9.x auch wieder ausgeblendet, bin mir gerade nicht sicher. Sie kommt daher, dass die mit 8.x eingeführten neuen Partitionsparser (geom_part_*) deutlich strenger sind und bei weitem nicht mehr alles akzeptieren, was zuvor legal und in Ordnung war. Daher sollte man inzwischen neue Partitionen immer mit gpart(8) erstellen. Es erzeugt die Partitionen mit geom_part_*, der Kernel schreibt sie selbst und kann sie daher entsprechend auch parsen. Außerdem kommen andere Systeme damit besser klar, gerade diese Macken wie "Mein Windows findet die unter FreeBSD erstellte Partition nicht" gehören damit der Vergangenheit an.
 
Hi piotr,
wenn du folgendes änderst, sollte die GEOM Meldung verschwinden:

tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 4863

das ist alles nur kosmetischer Natrur:
63*16=1008
63*255=16065
78125000/1008=77504
78125000/16065=4863

Danke, aber wie soll ich das ändern?
 
Zurück
Oben