Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ NetBSD ] Problème fdisk/disklabel/installboot.

3 réponses
Avatar
totof2000
Bonjour.

Je veux installer un "bout" de NetBSD current sur une carte mémoire
Compact Flash. Cependant le poste sur lequel j'effectue l'opération
tourne en NetBSD 4.. Je suis en archi i386 pour le moment, mais à terme
ça pourrait changer. Si je veux préparer mon disque sur i386,il me faut
faire :

- fdisk

- disklabel

- installboot.

Je travaille avec un fichier et /dev/vnd0


Or là, étant donné que le système que je veux installer a une version
différente, j'utilise les outils i386--netbsdelf-fdisk,
nbdisklabel-i386, ainsi que nbinstallboot qui se situent avec les
outils de cross compilation.

L'étape primaire du fdisk se passe plutot bien :

$FDISK -0ufc /data/build/dest.i386/usr/mdec/mbr_bootsel -s 169/63/$SIZE
/dev/vnd0d (avec $FDISK qui contient le path vers la bonne commande,
$SIZE contient la taille de la partition).

Par contre il me reste un "résidus" le message "PBR is not bootable
.... ", mais de mémoire, à ce stade c'est normal. Cependant, je ne me
rappelle plus à quelle étape ceci disparaitra .... A l'installboot ?


0: NetBSD (sysid 169)
start 63, size 4800 (2 MB, Cyls 0-0/77/12), Active
PBR is not bootable: All bytes are identical (0x00)

Ensuite vient l'étape du disklabel .... Si je fais un disklabel "normal"
il me retourne un label que je qualifierai de "label par défaut"Par
contre lorsque j'utilise le nbdisklabel-i386, il refuse de me donner les
infos.

Après plusieurs essais, tentative de "construction" à la main d'un
disklabel, etc ... j'en arrive à me poser certaines questions, donc
celle-ci avant tout : Est-il nécessaire d'utiliser lesdits outils
lorsqu'on partitionne u disque depuis un netbsd quelconque pour être
installé sur un autre BSD quelconque, quelle que soit l'archi ?

Si c'est le cas, comment procéder pou créer un disklabel correct ?

Lidée serait à terme de pouvoir, depuis mon x86 par exemple, générer et
nstaller une image pour sparc, ou autre archi un peu exotique, ou vice
versa,

Merci d'avance pour votre attention.

3 réponses

Avatar
Manuel Bouyer
totof2000 wrote:
Bonjour.



Je veux installer un "bout" de NetBSD current sur une carte mémoire
Compact Flash. Cependant le poste sur lequel j'effectue l'opération
tourne en NetBSD 4.. Je suis en archi i386 pour le moment, mais à terme
ça pourrait changer. Si je veux préparer mon disque sur i386,il me faut
faire :



- fdisk



- disklabel



- installboot.



Je travaille avec un fichier et /dev/vnd0




Or là, étant donné que le système que je veux installer a une version
différente, j'utilise les outils i386--netbsdelf-fdisk,
nbdisklabel-i386, ainsi que nbinstallboot qui se situent avec les
outils de cross compilation.



L'étape primaire du fdisk se passe plutot bien :



$FDISK -0ufc /data/build/dest.i386/usr/mdec/mbr_bootsel -s 169/63/$SIZE
/dev/vnd0d (avec $FDISK qui contient le path vers la bonne commande,
$SIZE contient la taille de la partition).



Par contre il me reste un "résidus" le message "PBR is not bootable
.... ", mais de mémoire, à ce stade c'est normal. Cependant, je ne me
rappelle plus à quelle étape ceci disparaitra .... A l'installboot ?



fdisk -i


0: NetBSD (sysid 169)
start 63, size 4800 (2 MB, Cyls 0-0/77/12), Active
PBR is not bootable: All bytes are identical (0x00)



Ensuite vient l'étape du disklabel .... Si je fais un disklabel "normal"
il me retourne un label que je qualifierai de "label par défaut"Par
contre lorsque j'utilise le nbdisklabel-i386, il refuse de me donner les
infos.



nbdisklabel-i386 -I ?


Après plusieurs essais, tentative de "construction" à la main d'un
disklabel, etc ... j'en arrive à me poser certaines questions, donc
celle-ci avant tout : Est-il nécessaire d'utiliser lesdits outils
lorsqu'on partitionne u disque depuis un netbsd quelconque pour être
installé sur un autre BSD quelconque, quelle que soit l'archi ?



en principe non, le format des tables de partiton ne changent pas (au
sein de la meme archi; si c'est pour une archi differente il faut
les outils pour cette archi)
Pour l'installboot ca depend (en l'occurence le bootloader de netbsd-4/i386
peut charger un netbsd-5/i386 sans problemes).


--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--
Avatar
totof2000
Manuel Bouyer wrote:
totof2000 wrote:
Bonjour.



Je veux installer un "bout" de NetBSD current sur une carte mémoire
Compact Flash. Cependant le poste sur lequel j'effectue l'opération
tourne en NetBSD 4.. Je suis en archi i386 pour le moment, mais à terme
ça pourrait changer. Si je veux préparer mon disque sur i386,il me faut
faire :



- fdisk



- disklabel



- installboot.



Je travaille avec un fichier et /dev/vnd0




Or là, étant donné que le système que je veux installer a une version
différente, j'utilise les outils i386--netbsdelf-fdisk,
nbdisklabel-i386, ainsi que nbinstallboot qui se situent avec les
outils de cross compilation.



L'étape primaire du fdisk se passe plutot bien :



$FDISK -0ufc /data/build/dest.i386/usr/mdec/mbr_bootsel -s 169/63/$SIZE
/dev/vnd0d (avec $FDISK qui contient le path vers la bonne commande,
$SIZE contient la taille de la partition).



Par contre il me reste un "résidus" le message "PBR is not bootable
.... ", mais de mémoire, à ce stade c'est normal. Cependant, je ne me
rappelle plus à quelle étape ceci disparaitra .... A l'installboot ?



fdisk -i



Marche pas :( Et il me semble l'avoir essayé :

Voici ce qui se passe :

bash-3.2# /data/build/tools.i386/bin/i386--netbsdelf-fdisk /dev/vnd0d
Disk: /dev/vnd0d
NetBSD disklabel disk geometry:
cylinders: 152, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
total sectors: 2457600

BIOS disk geometry:
cylinders: 153, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
total sectors: 2457600

Partition table:
0: NetBSD (sysid 169)
start 63, size 2457472 (1200 MB, Cyls 0-152/248/31)
PBR is not bootable: All bytes are identical (0x00)
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>
Bootselector disabled.
No active partition.



Ensuite vient l'étape du disklabel .... Si je fais un disklabel "normal"
il me retourne un label que je qualifierai de "label par défaut"Par
contre lorsque j'utilise le nbdisklabel-i386, il refuse de me donner les
infos.



nbdisklabel-i386 -I ?



Marche pas non plus ...

bash-3.2# /data/build/tools.i386/bin/nbdisklabel-i386 -i -I /dev/vnd0d
nbdisklabel-i386: could not read existing label



Après plusieurs essais, tentative de "construction" à la main d'un
disklabel, etc ... j'en arrive à me poser certaines questions, donc
celle-ci avant tout : Est-il nécessaire d'utiliser lesdits outils
lorsqu'on partitionne u disque depuis un netbsd quelconque pour être
installé sur un autre BSD quelconque, quelle que soit l'archi ?



en principe non, le format des tables de partiton ne changent pas (au
sein de la meme archi;


Je m'en doutais un peu ..
si c'est pour une archi differente il faut
les outils pour cette archi)



Ca aussi je m'en doutais un peu ...
Pour l'installboot ca depend (en l'occurence le bootloader de netbsd-4/i386
peut charger un netbsd-5/i386 sans problemes).




Ca ne me surprend pas. Qu'en est-il du bootloader d'un netbsd4-i386 et
d'un netbsd-5/amd64 ?

A terme j'aimerais compilernetbsd sur mon i386 ou amd64 un NetBSD pour
SPARC64 et l'installer depuis mon i386


Pour mon problème, j'ai essayé de générer un disklabel à partir des
données récupérées depuis un fdisk mais ça ne marche pas ... J'ai
l'impression que la géometrie n'est pas bonne.



Le script :

bash-3.2# more i386_make_disklabel.sh
#!/bin/sh

ARCH=$(echo $0 | sed 's/_.*//')
#echo "Arch : $ARCH"

DEVICE=$1

eval $(/data/build/tools.i386/bin/i386--netbsdelf-fdisk -S $DEVICE)
DLCYL=$((DLCYL+1))
cat <<...
# /dev/vnd0d:
type: vnd
disk: vnd
label: fictitious
flags:
bytes/sector: 512
sectors/track: $DLSEC
tracks/cylinder: $((DLSIZE/(DLSEC*DLCYL)))
sectors/cylinder: $((DLSIZE/DLCYL))
cylinders: $DLCYL
total sectors: $DLSIZE
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0

4 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: $((DLSIZE-63)) 63 4.2BSD 0 0 0
c: $((DLSIZE-63)) 63 unused 0 0
d: $DLSIZE 0 unused 0 0
Avatar
totof2000
Bon ... Finalement ça marche (au moins pour i386 sur i386).

Le problème : lorsque je fais un nbdisklabel sur un device vnd, en
utilisant le disklabel généré par mo script, il faut faire un vnconfig
-u puis un vnconfig -c pour ensuite pouvoir faire un newfs sur
/dev/vnd0a Etrange comportement. Un petit détail par rapport au script
que j'ai envoyé dans mon précédent post : j'ai remplacé les variables
$DLCYL ou DLxxx par BCYL ou Bxxx avant de me rendre compte du phénomène.
Je reste cependant convaincu qu'en les remettant telles quelles ça
fonctionnera (je testerai plus tard : là je commence à fatiguer).
Cependant, j'ai réussi en procédant de façon empirique, et je reste
preneur de toute explication sur ce sujet

Je ne sais pas si ça marchera pour générer une image bootable sur SPARC,
ou si j'aurais le même problème pour un disque physique.