# problemi con slice BSD ed fdisk di linux

## djinnZ

Ho pensato di fare un paio di prove sul portatile che è andato in gloria causa driver mustek del piffero e windows che non sa morire in pace.

Ho provato a partizionare in questo modo l'hd da 80GB:

sda1 estesa (05) ~9GB

sda2 ntfs (07) ~20GB

sda3 slice BSD (a5) ~25GB

sda4 ntfs (07)

sda5 swap (82) ~1GB

sda6 reiserfs (83) ~4GB

sda7 ntfs (7) ~4GB

poi dovevano esserci

sda8 xfs (per la root linux, voglio fare questa pazzia)

sda9 reiserfs

sda10 swap

Creo e formatto le tre partizioni primarie e le tre estese senza problemi poi avvio fdisk, comando b e rispondo affermativamente alla richiesta di creare le slice. Fin qui tutto bene. Formatto la swap e l'altra partizione reiser senza problemi ma quando vado a formattare la partizione di root piallo l'intera slice.

Diciamo che il mio hd ha 9400 settori la partizione bsd parte dal 3611 e finisce al 6900, quando fdisk mi crea le partizioni mi ritrovo con due slice c (filesystem unused) che va da 3611 a 6900 e d (sempre unused) che va da 1 a 9400; quindi cancello la slice c e creo nell'ordine a da 3611 a 6100, b da 6101 a 6600 e c da 6601 a 6900.

Se faccio partire la prima partizione dal settore 3612 sembra funzionare tutto, quindi intuisco che fdisk è buggato e non riserva lo spazio necessario all'inizializzazione della slice o che diavolo sia. In più mi intriga l'opzione x del submenu bsd di fdisk che sostiene di poter legare ad una partizione normale le slice (rendendole visibili anche al windozz dannato creando delle partizioni di un singolo blocco nell'estesa? magari, ma questa prova non mi azzardo a farla, ho penato troppo per ripristinare quello schifo di sistema operativo) ma non ho veramente trovato alcuna spiegazione in proposito.

Visto che non ho trovato un bel piffero di documentazione che spieghi nel dettaglio la faccenda mi chiedo se basta un settore vuoto all'inzio, se posso cancellare la quarta slice (d che comprende l'intero disco) e soprattutto se non devo lasciare spazio tra le slice (mi pare illogico ma non si sa mai).

Ultima cosa, esiste nella numerazione delle slice qualcosa di equivalente all'83 delle partizioni tradizionali?

Capisco che è ferragosto ma prego chiunque abbia a che fare con bsd di rispondere, ho una certa premura di riavere il mio portatile funzionante.

Pasticciando con le partizioni ho notato che se ci sono due partizioni con uguale label su diversi hd in /dev/disk/by-label al sync viene inserita solo la partizione relativa all'ultimo disco (prima non ne compariva nessuna), capisco la logica ma esiste un modo per invertirla? (se necessario e se anche altri sono interessati apro un altro thread)

----------

## nikko96

Scusa,forse non ho capito bene io,come hai creato le 3 partizioni primarie e le 3 estese?

Essendoci il limite delle 4 partizioni primarie per il bios,la slice bsd che praticamente è da intendere come tale e idem per la estesa,forse intendevi partizioni logiche

Cosa riporta l'output di

```

fdisk -l /dev/hda
```

gnu fdisk ovviamente,ciao.

----------

## Peach

 *nikko96 wrote:*   

> Scusa,forse non ho capito bene io,come hai creato le 3 partizioni primarie e le 3 estese?
> 
> Essendoci il limite delle 4 partizioni primarie per il bios,la slice bsd che praticamente è da intendere come tale e idem per la estesa,forse intendevi partizioni logiche
> 
> Cosa riporta l'output di
> ...

 

se non sbaglio con bsd le slice sono sottopartizioni e *non credo* che siano limitate a partizioni logiche ma anche primarie.

----------

## djinnZ

Le slice sono solo partizioni primarie, le sotto partizioni ( pure i termini sono confusi  :Evil or Very Mad:  ) di una slice vengono viste come ulteriori partizioni logiche, come fosse una seconda estesa, da linux. Visto che lvm è lento, lvm di windozz è pericoloso al momento, mi servono almeno 8 partizioni e non voglio sprecare lo spazio più veloce all'inzio del disco per una partizione di test e per la swap della sospensione mi è venuta l'idea di provare con le slice. Che la lettura funzioni bene è certo (anche se di tipo diverso devi usare per forza le slice in alcune architetture), in scrittura ci sono alcuni problemi nella mia esperienza ma sono dovuti ai problemi del supporto ad ufs sotto linux che fa sicuramente pena.

```
Disk /dev/hdg: 81.9 GB, 81964302336 bytes

16 heads, 63 sectors/track, 158816 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/hdg1               1       15882     8004496+   5  Extended

/dev/hdg2           15883       55566    20000736    7  HPFS/NTFS

/dev/hdg3           55567      105945    25391016   a5  FreeBSD

/dev/hdg4          105946      158816    26646984    7  HPFS/NTFS

/dev/hdg5               1        1985     1000377   82  Linux swap / Solaris

/dev/hdg6            1986        9923     4000720+  83  Linux

/dev/hdg7            9924       15882     3003304+   7  HPFS/NTFS
```

e questa è in linea di massima la struttura delle partizioni IBM/DOS (sto giocando su un disco simile che avevo per provare gentoo bsd appena trovo il tempo, ovvero mai).

```
Command (m for help): b

Reading disklabel of /dev/hdg3  at sector 56010529.

/dev/hdg3  contains no disklabel.

Do you want to create a disklabel? (y/n) y

# /dev/hdg3 :

type: ST506

disk:

label:

flags:

bytes/sector: 512

sectors/track: 63

tracks/cylinder: 16

sectors/cylinder: 1008

cylinders: 158816

rpm: 3600

interleave: 1

trackskew: 0

cylinderskew: 0

headswitch: 0           # milliseconds

track-to-track seek: 0  # milliseconds

drivedata: 0

4 partitions:

#       start       end      size     fstype   [fsize bsize   cpg]

  c:    55567    105945     50379     unused        0     0

  d:        1    158816    158816     unused        0     0

BSD disklabel command (m for help): d

Partition (a-d): d

BSD disklabel command (m for help): n

Partition (a-p): d

First cylinder (55567-105945, default 55567): 95251

Last cylinder or +size or +sizeM or +sizeK (95251-105945, default 105945): +4096M

BSD disklabel command (m for help): p

4 partitions:

#       start       end      size     fstype   [fsize bsize   cpg]

  a:    55567     95250     39684    unknown

  c:    55567    105945     50379     unused        0     0

  d:    95251    103188      7938     unused        0     0

BSD disklabel command (m for help): n

Partition (a-p): e

First cylinder (55567-105945, default 55567): 103189

Last cylinder or +size or +sizeM or +sizeK (103189-105945, default 105945):

Using default value 105945

BSD disklabel command (m for help): p

5 partitions:

#       start       end      size     fstype   [fsize bsize   cpg]

  a:    55567     95250     39684    unknown

  c:    55567    105945     50379     unused        0     0

  d:    95251    103188      7938     unused        0     0

  e:   103189    105945      2757     unused        0     0

BSD disklabel command (m for help): t

Partition (a-e): d

Hex code (type L to list codes): l

 0  unused           5  4.1BSD           9  4.4LFS           d  boot

 1  swap             6  Eighth Edition   a  unknown          e  ADOS

 2  Version 6        7  4.2BSD           b  HPFS             f  HFS

 3  Version 7        8  MS-DOS           c  ISO-9660        10  AdvFS

 4  System V

Hex code (type L to list codes): a

BSD disklabel command (m for help): m

Command action

   d   delete a BSD partition

   e   edit drive data

   i   install bootstrap

   l   list known filesystem types

   m   print this menu

   n   add a new BSD partition

   p   print BSD partition table

   q   quit without saving changes

   r   return to main menu

   s   show complete disklabel

   t   change a partition's filesystem id

   u   change units (cylinders/sectors)

   w   write disklabel to disk

   x   link BSD partition to non-BSD partition

BSD disklabel command (m for help):
```

e questo è il log di quello che ho fatto dopo (con qualche problema di taglia e incolla). Che dovevo usare c e non d per indicare la slice lo ho capito dopo provando a partizionare da un vecchio installer di freebsd; Non uso la slice b riservata per la swap (per la sospensione) poichè non vorrei che a seconda della versione del kernel passi da hdg9 ad hdg10 e viceversa.

Faccio il sync(poi provo ad usare il disco preparato direttamente con bsd e vediamo se funziona, ma mi apetto di si, da tante cose inizio a pensare che fdisk sia buggato nella gestione delle slice)

Quello che vorrei capire è l'uso del comando x, ovvero se creando un paio di partizioni logiche nella estesa di un singolo cilindro posso rendere accessibili al windozz le slice (vorrei poter riservare 4GB a truecrypt per condividere password, chiavi asimmetriche etc.). Visto che è una cosa decisamente pericolosa voorei un minimo di informazioni ma a quanto pare nel mondo bsd si perde tempo a comporre inni da accludere al cd di distribuzione (l'orrido cd ufficiale di openbsd chi lo dimentica...  :Evil or Very Mad:  ) piuttosto che documentare o semplificare la vita agli utenti.

Ma soprattutto vorrei capire se sbaglio qualcosa visto che a parte schifarmi con l'installazione da età della pietra di openbsd non è che mi sia mai curato molto di questo sistema.

Tra l'altro è possibile in qualche strano e bizzarro modo fare a meno di installare il bootmanager nell'mbr e rendere la slice avviabile da linux?

Il problema di fondo è trovare un minimo di documentazione comprensibile. So che c'è qualcuno che ci gioca in quasto forum (a parte i capoccia italianissimi del progetto gentoo bsd).

----------

## nikko96

Per far partire openbsd da linux è uguale al kernel netbsd,aggiungendo una voce simile a grub.conf

```
title  OpenBSD

root   (hd0,2,a)

kernel --type=netbsd /bsd

```

Poi per quanto riguarda l'opzione x dell'fdisk-bsd sembra che voglia significare ad occhio e croce

aggiungere partizioni esterne alla slice bsd per montarle da subito,senza modificare a sistema installato fstab,

tipo una partizione dati/di scambio fat per esempio.

Infine non credo che winzozz possa leggere dati all'interno di una slice bsd.(se ho capito bene sarebbe sufficiente una

partizione di scambio fat )

Ciao

----------

## djinnZ

 :Shocked:  eh? quindi in bsd posso mappare partizioni esterne nella slice? Peccato, avrei preferito il contrario. Ma visto che mi pare che usi un bsd richiedo:

la slice c (marcata unused) è obbligatoria? deve andare dall'inzio alla fine del disco o della slice? (il sysinst di freebsd la pone dall'inizio alla fine della slice) etc.

In ogni caso niente da fare, se voglio che la formattazione da linux non mi pialli la slice devo farla iniziare al cilindro successivo. Ovviamente se qualcuno avesse un link a documentazione chiara e decente...

Altrimenti mi arrangio così per ora ed attendo che drizzt o flameyes (o l'unico utente di bsd che conosco dalle mie parti) tornino dalla latitanza (e che io torni dalla mia anche se di questo passo mi perdo le ferie). Possibile che a parte loro nessuno usa bsd?

Spulciando in giro ho trovato un post in cui si parlava di bug di fdisk a proposito di installazone su sun o qualcosa del genere ma il windozz malnato (il mio odio diventa sempre più feroce ma non posso farne a meno, grazie alla pubblica amministrazione) che è l'unico sistema semifunzionante al momento mi è crashato mentre leggevo e non so più come arrivarci.

----------

## !equilibrium

 *djinnZ wrote:*   

> Ho provato a partizionare in questo modo l'hd da 80GB:
> 
> sda1 estesa (05) ~9GB
> 
> sda2 ntfs (07) ~20GB
> ...

 

uhmmm io sinceramente mi sono perso, non mi è chiaro lo schema di partizionamento perchè da quello che hai postato sembra che tu abbia creato 1 partizione estesa (sda1) in cui tutte le altre partizioni stanno dentro, ma poi parli di aver formattato partizioni primarie... esattamente quali sono? se puoi posta l'output di fdisk, così si capisce meglio.

 *djinnZ wrote:*   

> Visto che non ho trovato un bel piffero di documentazione che spieghi nel dettaglio la faccenda mi chiedo se basta un settore vuoto all'inzio, se posso cancellare la quarta slice (d che comprende l'intero disco) e soprattutto se non devo lasciare spazio tra le slice (mi pare illogico ma non si sa mai). Ultima cosa, esiste nella numerazione delle slice qualcosa di equivalente all'83 delle partizioni tradizionali?

 

uhmmm hai le idee un po confuse, non devi taggare le disklabel delle slice, ti basta marcare la slaci con il tipo corretto per il tuo BSD.

l'handbook FreeBSD spiega molto bene queste cose.

 *djinnZ wrote:*   

> Che la lettura funzioni bene è certo (anche se di tipo diverso devi usare per forza le slice in alcune architetture), in scrittura ci sono alcuni problemi nella mia esperienza ma sono dovuti ai problemi del supporto ad ufs sotto linux che fa sicuramente pena.

 

sì, il supporto in scrittura per UFS/UFS2 di Linux non funziona, lascia pure perdere.

 *djinnZ wrote:*   

> Faccio il sync(poi provo ad usare il disco preparato direttamente con bsd e vediamo se funziona, ma mi apetto di si, da tante cose inizio a pensare che fdisk sia buggato nella gestione delle slice)

 

è probabile che sia buggato, io non l'ho mai usato, ho sempre creato la partizione logica con fdisk, taggata e stop, il resto l'ho sempre fatto a riga di comando dal LiveCD di *BSD (e ha sempre funzionato, ci mancherebbe altro...).

 *djinnZ wrote:*   

> Tra l'altro è possibile in qualche strano e bizzarro modo fare a meno di installare il bootmanager nell'mbr e rendere la slice avviabile da linux?

 

sì, usi il grub di Linux e ci aggiungi la voce che punta alla directory /boot che sta nella tua slice+disklabel (grub supporta sia UFS che UFS2).

questo per esempio è una voce del mio grub da cui avvio g/fbsd:

```
# For booting FreeBSD

title  Gentoo/FreeBSD

root   (hd1,1,e)

kernel /boot/loader
```

qui una schema di partizionamento di un mio HD con g/fbsd:

```
hd1,1 --> slice FreeBSD

hd1,1,c --> disklabel reserved (è uguale alla grandezza totale della slice)

hd1,1,d --> disklabel con installazione Gentoo/FreeBSD

hd1,1,e --> disklabel con installazione Gentoo/FreeBSD

hd1,1,f --> disklabel con installazione Gentoo/FreeBSD
```

 *djinnZ wrote:*   

>  eh? quindi in bsd posso mappare partizioni esterne nella slice? Peccato, avrei preferito il contrario. Ma visto che mi pare che usi un bsd richiedo: la slice c (marcata unused) è obbligatoria? deve andare dall'inzio alla fine del disco o della slice? (il sysinst di freebsd la pone dall'inizio alla fine della slice) etc.

 

la bsdlabel c è riservata (si chiamano bsdlabel partitions e non "slice", quest'ultima identifica la partizione logica del disco), non puoi usarla, immaginalo come un device virtuale che mappa l'intera grandezza della slice (ok, non è proprio così, ma se leggi l'handbook FreeBSD è spiegato sicuramente meglio e tentare di farlo ora con due semplici frasi non è facile); lo spazio della slice lo partizioni come vuoi (immagina la slice come una partizione estesa a se stante, o meglio ancora come un HD a se stante) e per ogni suddivisione che fai gli assegni una lettera (a tuo piacimento), io in genere uso direttamente disklabel -e, salvo e poi formatto le varie unità d, e, f ecc ecc che ho creato. fine, altro non serve.

p.s.: ovviamente devi saper usare il comando bsdlabel.

p.p.s: evita di mettere /boot per *BSD su una bsdlabel per due motivi: 1- è inutile (c'è un post sul blog di flameeyes a riguardo), 2- è inutile.

 *djinnZ wrote:*   

> In ogni caso niente da fare, se voglio che la formattazione da linux non mi pialli la slice devo farla iniziare al cilindro successivo

 

formattazione da linux? non credo proprio sia possibile... non mi pare di ricordare che in portage ci siano le utility per UFS/UFS2.

p.s.: ovviamente non devi formattare la disklabel c.

p.p.s.: ovviamente le slice BSD devono stare su partizioni logiche, perchè il boot da partizione estesa non è ancora supportato (almeno in FreeBSD e DragonflyBSD, non saprei per gli altri *BSD...)

----------

## djinnZ

Ok, ho fatto qualche prova e posso dire con certezza che c'è più di un problema con le slice in linux. Ricominciamo da capo:

Mi servono sullo stesso disco due swap distinte, due partizioni per windozz (ed una deve per forza essere all'inizio del disco, logica, contigua alla partizione principale etc.), tre partizioni per linux (oltre alla solita home mi serve una partizione separata da lasciare in RO per alcuni backup "delicati") ed una partizione NTFS o meglio HFS+ (appena trovo il tempo di acquistare l'apposito driver) per condividere i file tra i due sistemi. Visto che linux dovrebbe leggere benissimo le slice l'unica soluzione che ho trovato è mettere la root di linux in una slice.

L'output di fdisk (disco di prova, simile dimensione) è questo:

```
Disk /dev/hdg: 81.9 GB, 81964302336 bytes

16 heads, 63 sectors/track, 158816 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/hdg1               1       15882     8004496+   5  Extended

/dev/hdg2           15883       55566    20000736    7  HPFS/NTFS

/dev/hdg3           55567      105945    25391016   a5  FreeBSD

/dev/hdg4          105946      158816    26646984    7  HPFS/NTFS

/dev/hdg5               1        1985     1000377   82  Linux swap / Solaris

/dev/hdg6            1986        9923     4000720+  83  Linux

/dev/hdg7            9924       15882     3003304+   7  HPFS/NTFS
```

comando b di fdisk ed inizializzo la slice e la partiziono. Questo è l'output di fdisk per le slice:

```
BSD disklabel command (m for help): p

6 partitions:

#       start       end      size     fstype   [fsize bsize   cpg]

  a:    55567     95250     39684    unknown

  c:    55567    105945     50379     unused        0     0

  d:        1    158816    158816     unused        0     0

  e:    95251    103188      7938    unknown

  f:   103189    105945      2757    unknown

BSD disklabel command (m for help):
```

che vengono regolarmente rilevate così 

```
hdg: hdg1 < hdg5 hdg6 hdg7 > hdg2 hdg3 hdg4

 hdg3: <bsd: hdg8 hdg9 hdg10 >
```

Da notare che se elimino le bsdlabel c e d o se le uso come normali partizioni il kernel se ne frega e riconosce perfettamente le partizioni in questione però la prima partizione (ovvero a, a voler essere compatibili con le convenzioni di bsd) deve essere allocata, se lascio c e d come sono e creo e f g il kernel considera la slice vuota.

Se lancio mkswap o mkreiserfs o mkfs.xfs su hdg9 ed hdg10 nessun problema. Ma se lancio mkfs.xfs su hdg8 la slice viene piallata (in pratica se avvio fdisk e do il comando b mi ripropone di creare la slice ed ovviamente il filesystem è corrotto) se faccio iniziare la bsdlabel a al cilindro successivo

```
a:    55568     95250     39684    unknown
```

nessun problema.

Per il momento ho capito a cosa servono la c e la d quindi grazie Mauro ma quel che non mi torna è la questione della formattazione. Come ho già detto non mi ricordo a proposito di quale architettura, alpha o sparc credo, ho trovato un commento a proposito del fatto che fdisk sbaglia e non riserva lo spazio di inizializzazione della partizione.

Marcare le bsdlabel diversamente è inutile, c'è per caso un parametro particolare da usare?

La mia idea a proposito del boot era installare il lilo (nella sua rozzezza è capace di partire da una partizione logica, è il bios a non essere capace di individuare dov'è per caricarlo) su hdg8 invece che su hdg ed attivare il flag di boot su hdg3, oppure usare il boot di bsd (senza sistema installato) per far partire lilo o quant'altro, vorrei evitare di mettere il boot nell'mbr (od almeno tenerne uno di scorta).

 *!equilibrium wrote:*   

> le slice BSD devono stare su partizioni logiche, perchè il boot da partizione estesa non è ancora supportato

   :Shocked:  immagino volessi dire che devono stare su partizioni primarie (anche perchè se provi con fdisk a creare una slice in una partizione logica, a consentirlo te lo consente ma il kernel si perde sia la slice che l'estesa)... a quanto pare la stanchezza e la confusione sono contagiose  :Laughing: 

----------

## !equilibrium

 *djinnZ wrote:*   

> Da notare che se elimino le bsdlabel c e d o se le uso come normali partizioni il kernel se ne frega e riconosce perfettamente le partizioni in questione però la prima partizione (ovvero a, a voler essere compatibili con le convenzioni di bsd) deve essere allocata, se lascio c e d come sono e creo e f g il kernel considera la slice vuota.

 

come ti ho detto nel mio precedente post, fdisk di linux non funziona bene con la creazione delle bsdlabel.

con fdisk crea solo la partizione logica, taggala e poi passa ad una console *BSD e crea/formatta le disklabel da lì (per creare una disklabel generica in una slice usa "disklabel -w /dev/adXsX", poi "disklabel -e /dev/adXsX" per creare le disklabel che desideri¹ ed infine per formattarle usa "newfs /dev/adXsXy", dove "y" sta per la lettera della disklabel).

 *djinnZ wrote:*   

> Per il momento ho capito a cosa servono la c e la d quindi grazie Mauro ma quel che non mi torna è la questione della formattazione. Come ho già detto non mi ricordo a proposito di quale architettura, alpha o sparc credo, ho trovato un commento a proposito del fatto che fdisk sbaglia e non riserva lo spazio di inizializzazione della partizione.

 

a naso, guardando l'output di fdisk che hai incollato, direi che fdisk sbaglia proprio ad allocare le disklabel, non mi pare che rispetti la dimensione della c.

 *djinnZ wrote:*   

> Marcare le bsdlabel diversamente è inutile, c'è per caso un parametro particolare da usare?

 

di fdisk (di linux) non ne ho idea.

 *djinnZ wrote:*   

> La mia idea a proposito del boot era installare il lilo (nella sua rozzezza è capace di partire da una partizione logica, è il bios a non essere capace di individuare dov'è per caricarlo) su hdg8 invece che su hdg ed attivare il flag di boot su hdg3, oppure usare il boot di bsd (senza sistema installato) per far partire lilo o quant'altro, vorrei evitare di mettere il boot nell'mbr (od almeno tenerne uno di scorta).

 

anche grub supporta il boot da partizione estesa.

per esempio questo è l'output di fdisk (di linux) di un altro mio HD:

```
Dispositivo Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1        2433    19543041   a5  FreeBSD

/dev/sdb2            2434        8513    48837600   a5  FreeBSD

/dev/sdb3            8514       10946    19543072+  bf  Solaris

/dev/sdb4           10947       19457    68364607+   5  Esteso

/dev/sdb5           10947       10971      200781   83  Linux

/dev/sdb6           10972       11215     1959898+  82  Linux swap / Solaris

/dev/sdb7           11216       11824     4891761   83  Linux

/dev/sdb8           11825       14257    19543041   83  Linux

/dev/sdb9           14258       19457    41768968+  83  Linux
```

sdb5 è la partizione dedicata a /boot condivisa tra le varie installazioni di Linux (sdb7,sdb8,sdb9) e grub non è installato nell'mbr di questo HD ma in un altro; ogni slice FreeBSD/Solari (sdb1,sdb2,sdb3) ha diverse disklabel (rispettivamente c,d,e,f), cioè 3 disklabel (non contando la c) per 3 slice, ovvero 9 installazioni tra g/fbsd, FreeBSD, Solaris e DragonflyBSD. Tutte fanno il boot da grub e tutte usano lo swap in share con le varie installazioni di Linux.

 *djinnZ wrote:*   

>  *!equilibrium wrote:*   le slice BSD devono stare su partizioni logiche, perchè il boot da partizione estesa non è ancora supportato   immagino volessi dire che devono stare su partizioni primarie (anche perchè se provi con fdisk a creare una slice in una partizione logica, a consentirlo te lo consente ma il kernel si perde sia la slice che l'estesa)... a quanto pare la stanchezza e la confusione sono contagiose 

 

... infatti, partizione logica = partizione primaria, mi sa che ti conviene dare una ripassatina

¹- tieni presente che in *BSD quando editi una disklabel, le dimensioni vanno specificate in base alla dimensione dei blocchi del filesystem (su FreeBSD 6.2 il default è 2048K);

----------

## djinnZ

 *!equilibrium wrote:*   

> con fdisk crea solo la partizione logica, taggala e poi passa ad una console *BSD e crea/formatta le disklabel da lì (per creare una disklabel generica in una slice usa "disklabel -w /dev/adXsX", poi "disklabel -e /dev/adXsX" per creare le disklabel che desideri¹ ed infine per formattarle usa "newfs /dev/adXsXy", dove "y" sta per la lettera della disklabel).

 

Poco dopo la mia precedente risposta ho fatto un'altra prova: ho avviato un cd di freebsd 2.5 che mi ritrovo e lo ho installato. Tutto OK, il sistema partiva. Poi ho provato da linux, senza toccare le partizioni, a riformattare la bsdlabel a e mi sono ritrovato di nuovo la slice piallata. Ho ripetuto l'operazione, ho avviato fdisk di linux ed effettivamente il cilindro di inizio della slice e della label a coincidevano; le ho cancellate e ricreate uguali sempre da linux ed ho riavviato bsd per installarlo, ed il sistema era ok. Forse non è colpa di fdisk perchè con entrambi i programmi il risultato appare identico. 

L'impressione è che newfs riserva dello spazio (sarebbe utile sapere quanto e perchè) all'inizio del filesystem proprio per lasciare le informazioni della partizione disponibili o per il boot. Cosa che reiserfs o xfs non fanno (bug di mkreiserfs? Mi pare strano visto che dovrebbe essere disponibile anche per bsd).

Oppure le informazioni di allocazione all'inzio della slice occupano più spazio di quello che il kernel linux/mkfs.xfs/mkreiserfs pensa (l'identico meccanismo che c'è per le partizioni estese?) e se è così è un bug grosso quanto una casa. Appena posso provo a creare una partizione estesa con delle sottopartizioni (va bene così?) di dimensioni identiche alle bsdlabel sulla slice piallata e vedo se il filesystem è integro.

 *!equilibrium wrote:*   

> a naso, guardando l'output di fdisk che hai incollato, direi che fdisk sbaglia proprio ad allocare le disklabel, non mi pare che rispetti la dimensione della c.

 Per piacere potresti verificare (solo in lettura) come sono create le evenuali label a nelle slice del tuo disco? 

 *!equilibrium wrote:*   

> ... infatti, partizione logica = partizione primaria, mi sa che ti conviene dare una ripassatina

   :Shocked:  ho sempre saputo il contrario... mah

nb: se in lilo.conf imposti boot=/dev/sd?5 (ovvero lo installi nell'improbabile bootsector della prima sottopartizione della estesa) è in grado di partire, grub si incazza invece (a ragione ma si incazza). Fai la prova se non mi credi.

----------

## !equilibrium

 *djinnZ wrote:*   

> L'impressione è che newfs riserva dello spazio (sarebbe utile sapere quanto e perchè) all'inizio del filesystem proprio per lasciare le informazioni della partizione disponibili o per il boot. Cosa che reiserfs o xfs non fanno (bug di mkreiserfs? Mi pare strano visto che dovrebbe essere disponibile anche per bsd).

 

sì UFS e UFS2 riservano le informazioni di bootstrapping all'inizio del filesystem mentre XFS/ext/reiserfs no, ma se non ricordo male servono per il bootloader *BSD (boot0) e per tutto il resto sono superflue (sfortunatamente non trovo info ufficiali a riguardo, bisognerebbe sentire i guru del forum tipo drizzt o diego).

nota: i kernel *BSD non supportano ne XFS ne reiserfs, ufficialmente supportano solo ext2/3 in lettura/scrittura, mentre per XFS/reiser il supporto è solo "legacy" (leggi: monti solo in ro la partizione); domanda, stai tentando di formattare xfs/reiserfs le disklabel ?

 *djinnZ wrote:*   

> Oppure le informazioni di allocazione all'inzio della slice occupano più spazio di quello che il kernel linux/mkfs.xfs/mkreiserfs pensa (l'identico meccanismo che c'è per le partizioni estese?) e se è così è un bug grosso quanto una casa. Appena posso provo a creare una partizione estesa con delle sottopartizioni (va bene così?) di dimensioni identiche alle bsdlabel sulla slice piallata e vedo se il filesystem è integro.

 

la frase "provo a creare una partizione estesa con delle sottopartizioni" la intendi proprio così? se sì, come ho già detto in precedenza, i kernel *BSD non supportano il boot su partizione estesa, nemmeno FreeBSD 7.0 (anche se stando alla doc dovrebbe esserci tale supporto, ma in realtà è ancora altamente sperimentale), è proprio una questione di kernel, c'è poco da fare.

 *djinnZ wrote:*   

> Per piacere potresti verificare (solo in lettura) come sono create le evenuali label a nelle slice del tuo disco? 

 

non ho nessuna disklabel a, visto che uso grub non necessito di tale disklabel per la fase di bootstrapping, e la directory /boot di ogni installazione *BSD non è su disklabel separata ma è una normalissima directory all'interno della / dell'OS, quindi ho già kernel+bootloader per il bootstrapping nella / dell'OS, il resto (il "salto" dall'MBR all'esecuzione del bootloader) lo fa grub.

 *djinnZ wrote:*   

>  ho sempre saputo il contrario... mah

 

ringrazia Microsoft per la confusione   :Laughing: 

un partizione creata in una partizione estesa si chiama disco logico, una partizione primaria si chiama anche partizione logica; partizione... disco... si fa presto a confondere i due termini   :Wink: 

 *djinnZ wrote:*   

> nb: se in lilo.conf imposti boot=/dev/sd?5 (ovvero lo installi nell'improbabile bootsector della prima sottopartizione della estesa) è in grado di partire, grub si incazza invece (a ragione ma si incazza). Fai la prova se non mi credi.

 

in effetti l'unica differenza tra il mio setup e il tuo è proprio il fatto che la tua prima partizione del disco è una partizione estesa, nel mio caso no; molto probabilmente è un bug di grub (o forse esiste il barbatrucco, tipo installare lo stage 1/1.5 di grub nella partizione estesa; c'è qualche esperto di grub in ascolto?)

----------

## djinnZ

 *!equilibrium wrote:*   

> domanda, stai tentando di formattare xfs/reiserfs le disklabel ?

 Infatti, visto che il supporto a partizioni estese multiple nel kernel è molto inaffidabile (però supporta, anche se con le incertezze di cui sopra le slice multiple), e me ne servono due sto cercando di mettere la root di linux, senza alcun bsd installato, su una disklabel.  :Mr. Green:  Lo che suona un tantino folle ma se non si sperimenta un poco...  :Cool: 

In più volevo cercare di installare il lilo nel settore di avvio della slice o della sua partizione avviabile piuttosto che nell'mbr (causa alcuni problemi con un certo software di contabilità del piffero ed il suo installer imbecille, ma questa è un'altra faccenda che presto o tardi risolverò rivolgendomi altrove, spero per il prossimo gennaio, riducendo drasticamente l'uso del windozz in ufficio).

Se mi confermi che ufs nelle proprie impostazioni prevede uno spazio libero per il boot e reiser o xfs no mi accontento di mettere la root su sda8 per il momento e lasciare il boot nell'mbr, con la seccatura di doverlo togliere e rimettere quando devo aggiornare.

Tanto se fino ad ora non hanno risposto flameyes e drittzt saranno ancora in vacanza.

In pratica, con il partizionamento di cui sopra, la mia fstab, in linux, è

```
#device          mountpoint        fstype  options

/dev/hdg8         /                     xfs          noatime,mand  0 0

/dev/hdg5         none               swap                              0 0

/dev/hdg6         /home             reiserfs    noatime,nodev,noexec,nosuid 0 0

/home/tmp        /tmp               none        bind                0 0

/home/var         /var               none         bind                0 0

/dev/hdg9         /home/bkp      xfs           noatime,diratime,mand 0 0

#per suspend to disk

#/dev/hdg10        none            swap                              0 0

#windows drive Z: ("\Document and settings", swap e \TEMP)

/dev/hdg7         /winZ              ntfs3g  noatime               0 0

#windows drive C:

/dev/hdg2         /winC              ntfs3g  noatime               0 0

#windows drive Y: (documenti)

/dev/hdg4         /home/share    ntfs3g  noatime,noexec,nodev,nosuid,uid=100,gid=100,umask=0007 0 0
```

----------

## nikko96

 *djinnZ wrote:*   

> Ok, ho fatto qualche prova e posso dire con certezza che c'è più di un problema con le slice in linux. Ricominciamo da capo:
> 
> Mi servono sullo stesso disco due swap distinte, due partizioni per windozz (ed una deve per forza essere all'inizio del disco, logica, contigua alla partizione principale etc.), tre partizioni per linux (oltre alla solita home mi serve una partizione separata da lasciare in RO per alcuni backup "delicati") ed una partizione NTFS o meglio HFS+ (appena trovo il tempo di acquistare l'apposito driver) per condividere i file tra i due sistemi. Visto che linux dovrebbe leggere benissimo le slice l'unica soluzione che ho trovato è mettere la root di linux in una slice.
> 
> .................[cut].........
> ...

 

Scusa se tardo un pochino per la risposta,dopo un bel pò di confusion comincio a capire qualcosina di quello che ti serve.

Capisco subito che un bsd non può entrarci nella questione,innanzitutto perchè linux può solo leggere ufs (abilitandolo

opportunamente nel kernel)non potrai mai installare linux in una slice bsd.

(...pensa che avevo capito che ti serviva installare un bsd addirittura openbsd)

Secondo motivo partizionando nella giusta maniera potrai risolvere ugualmente,secondo me;

infatti dovresti arrivare ad avere,sempre chè puoi permetterti di piallare l'hd,le prime 2 partizioni primarie (winzozziane per così dire),una terza anche,per lo scambio che addirittura io farei in fat32,e l'ultima estesa,all'interno della quale avrai le tue belle partizioni LOGICHE(anche io ho sempre saputo che le logiche sono queste) dove installerai linux con le 2 swap (  :Question:  ).

P. S. Per quanto riguarda la slice freebsd la label "c" indica l'intera slice(non usabile per creare il fs) mentre a sta per / b per swap d, e, f, g per tutto il resto

vale a dire /var /tmp/ /usr /home

Sono sicuro che qualcosina mi sfugge ancora.ciao e buona fortuna   :Laughing: 

----------

## djinnZ

Per evitare rogne con l'istaller puffo ed il bootmanager di windows xp (non è che quello di vista sia meglio se è per questo) anche nella versione superpezzottata (ma ci sto lavorando, ci sto lavorando) che uso io è obbligatorio creare una partizione estesa all'inizio del disco se non vuoi impazzire con le lettere di volume poi.

Per una questione di prestazioni è meglio avere all'inizio la swap le temporanee e la var su linux, quanto a windows è meglio che Document and settings e la swap siano su una partizione contigua a quella principale per evitare che la testina vada avanti e indierto sul disco. Lo schema è quello e visto che ero io a non aver capito alcune cose del funzionamento delle slice e di bsd. Vorrei sempre trovare un minimo di documentazione di riferimento... ma almeno ho capito il meccanismo, ora è solo questione di mettere a posto i dettagli.

In realtà a parte i limiti di fdisk (se crei una estesa tipo 85 e poi da windows o peggio da dos crei una seconda unità è abbastanza facile trovarsi negli impicci con una seconda partizione tipo 5 o c) se crei due partizioni estese sullo stesso drive il kernel di linux le vede come vede due slice sullo stesso disco. Il problema è che mentre per le label delle slice la numerazione è stabilita progressivamente a partire dalla prima label della prima slice all'ultima label della seconda per le partizioni estese non è stabilito nulla quindi, secondo l'umore degli sviluppatori del kernel, possono essere numerate a patire dalla prima partizione, alternativamente tra le partizioni o essere ignorate con errore di partizione non valida nei log, tutto secondo la singola versione dei kernel. In più alcuni programmi imbecilli di partizionamento o di recovery (anche su sistemi open-source) possono pensare di correggere automaticamente piallando una delle due estese o tutte le unità logiche (alla fine mi sono ricordato il termine giusto, perchè se in una cosa entrano M$ od IBM diventa confusa e pasticciata? lo fanno apposta?!).

----------

## nikko96

Capisco,che è una questione di prestazioni e di piccoli accorgimenti per evitare cacchiate

di difault che quell'altra cosa si ostina a presentare.

Dispiace di non poterti aiutare,non essendomi mai trovato in problematiche simili (fortunatamente aggiungo),

in compenso posso darti qualche link sulla documentazione di base di un sistema *bsd

che a suo tempo mi è stato utile per provarli tutti e tre rimanendo affezionato a freebsd (anche se sul nuovo

hardware - asus p5n-e - da problemi con il chipset sata),oltre

che al nostro fidato sistema linux.

Saluti

http://www.docmirror.net/it/linux/howto/os/Linux+FreeBSD/Linux+FreeBSD.html#toc5

http://www.openbsd.it/faq/index.html

http://www.netbsd.org/docs/guide/en/chap-inst.html#chap-inst-install-geometry

http://www.mclink.it/personal/MG2508/netbsd/chap-inst.html#AEN341

P. S. E' sottointeso l'handbook di freebsd come ricordato prima

----------

