OVH Cloud OVH Cloud

mount_ext2fs (NetBSD)

19 réponses
Avatar
JKB
Bonjour à tous,

Je suis en train de tester des machines à base de loongson 2F. Je
suis assez bluffé par la réactivité de ces petites machines eu égard
à leur consommation assez ridicule. La première a été installée sous
Linux Debian et j'ai un peu galéré pour installer une version de
grub bootable. Bon, c'est fait.

Pour la seconde, j'ai choisi un NetBSD des familles. J'ai réussi à
l'installer malgré le bug de la console (pas assez large pour
afficher le menu de partitionnement), donc à la main.

De ce que j'ai compris, le fulong boote sur une partition ext2
reconnue par la prom. J'ai donc créé une partition /boot en ext2.

Mon disklabel est le suivant :
/dev/wd0e /boot (ext2)
/dev/wd0f / (BSD4.2 ffs)
/dev/wd0g swap

J'ai formaté /boot grâce à newfs_ext2fs de NetBSD. Lorsque je fais
un fsck, l'outil ne renvoie aucune erreur. En revanche, je suis dans
l'impossibilité de monter cette partition. Mount me renvoie
invariablement que le superbloc est corrompu (?). Qu'ai-je oublié ?

Merci de vos lumières,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr

9 réponses

1 2
Avatar
Manuel Bouyer
JKB wrote:
> copier/coller de la commande gcc en enlevant les references a /lib
> (les librairies 64bits sont uniquement dans /usr/lib)

Tu te doutes bien que la réponses n'était pas aussi triviale ;-)
J'ai bien tenté ta ligne de compilation. Je l'ai refait à l'instant
pour être sûr :

gcc -mabid -o mount_ext2fs mount_ext2fs.o pathadj.o -lutil
-Wl,-dynamic-linker=/libexec/ld.elf_so -Wl,-rpath,/lib -L=/lib
/lib/libutil.so: could not read symbols: File in wrong format
*** Error code 1

Cela échoue effectivement bien sur l'édition des liens. Or même en
mettant /usr/lib à la place de /lib, le résultat est le même :

fuloong-2# gcc -mabid -o mount_ext2fs mount_ext2fs.o pathadj.o
-lutil -Wl,-dynamic-linker=/libexec/ld.elf_so -Wl,-rpath,/usr/lib
-L=/usr/lib
/usr/lib/libutil.so: could not read symbols: File in wrong format



Ha non, il faut juste faire:
gcc -mabid -o mount_ext2fs mount_ext2fs.o pathadj.o -lutil

et gcc ira chercher les libs 64bits au bon endroit

--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--
Avatar
JKB
Le Tue, 11 Dec 2012 18:13:14 +0000 (UTC),
Manuel Bouyer écrivait :
JKB wrote:
> copier/coller de la commande gcc en enlevant les references a /lib
> (les librairies 64bits sont uniquement dans /usr/lib)



Tu te doutes bien que la réponses n'était pas aussi triviale ;-)
J'ai bien tenté ta ligne de compilation. Je l'ai refait à l'instant
pour être sûr :



gcc -mabid -o mount_ext2fs mount_ext2fs.o pathadj.o -lutil
-Wl,-dynamic-linker=/libexec/ld.elf_so -Wl,-rpath,/lib -L=/lib
/lib/libutil.so: could not read symbols: File in wrong format
*** Error code 1



Cela échoue effectivement bien sur l'édition des liens. Or même en
mettant /usr/lib à la place de /lib, le résultat est le même :



fuloong-2# gcc -mabid -o mount_ext2fs mount_ext2fs.o pathadj.o
-lutil -Wl,-dynamic-linker=/libexec/ld.elf_so -Wl,-rpath,/usr/lib
-L=/usr/lib
/usr/lib/libutil.so: could not read symbols: File in wrong format



Ha non, il faut juste faire:
gcc -mabid -o mount_ext2fs mount_ext2fs.o pathadj.o -lutil

et gcc ira chercher les libs 64bits au bon endroit



Merci, c'est bon et j'arrive à monter le fs en question. Reste
maintenant à compiler gcc47 qui se vautre lamentablement... Tous les
prérequis sont compilé, mais un script awk échoue sur un segfault
:-(

Juste une question. As-tu sous la main une machine avec un loogson ?
Parce dans ce cas, je risque de t'embêter un peu ;-) Sur le site
releng de NetBSD, il est indiqué que la branche 6 compile sans
erreur et, comment dire, ce n'est pas le cas chez moi... J'ai aussi
une petite interrogation sur smartctl qui ne semble pas fonctionner.

Cordialement,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
Manuel Bouyer
JKB wrote:
Merci, c'est bon et j'arrive à monter le fs en question. Reste
maintenant à compiler gcc47 qui se vautre lamentablement... Tous les
prérequis sont compilé, mais un script awk échoue sur un segfault
:-(

Juste une question. As-tu sous la main une machine avec un loogson ?



oui, j'ai un lemote fuulong

Parce dans ce cas, je risque de t'embêter un peu ;-) Sur le site
releng de NetBSD, il est indiqué que la branche 6 compile sans
erreur et, comment dire, ce n'est pas le cas chez moi...



Moi je n'ai pas eu de problemes mais je n'ai fait que de la cross-compilation.

J'ai aussi
une petite interrogation sur smartctl qui ne semble pas fonctionner.



est-ce que atactl fonctionne ?

--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--
Avatar
JKB
Le Tue, 11 Dec 2012 22:55:00 +0000 (UTC),
Manuel Bouyer écrivait :
JKB wrote:
Merci, c'est bon et j'arrive à monter le fs en question. Reste
maintenant à compiler gcc47 qui se vautre lamentablement... Tous les
prérequis sont compilé, mais un script awk échoue sur un segfault
:-(



Juste une question. As-tu sous la main une machine avec un loogson ?



oui, j'ai un lemote fuulong



D'accord (c'est ce que Miod m'a soufflé dans l'oreille cette nuit
en signalant que tu lui avais piqué son code ;-) )

La question suivante est donc : comment bootes-tu cette machine ? Je
n'ai pas réussi à l'installer directement via la procédure
officielle pour cause de terminal pas assez large (le menu de
partitionnement échoue). J'ai donc détaré directement les sets
binaires, donc je ne sais pas s'il existe un outil pour booter
simplement. Aujourd'hui, j'en suis à utiliser une clef USB avec un
boot.cfg et le noyau, d'où mon problème de ext2 pour faire la même
chose à partir du disque dur. Mais peut-être existe-t-il un bout de
code à coller sur cette partition ext2 pour charger le noyau qui se
trouve sur / ? Je ne sais pas si je suis très clair... J'hésite
aussi à utiliser un truc comme grub car celui que j'ai bricolé sous
Linux, s'il fonctionne, ne donne pas accès au clavier (alors que les
bons modules sont chargés). Quant à PMON, je ne me vois pas le
modifier pour qu'il comprenne ffs et fss2...

Par ailleurs, comment fais-tu pour avoir plusieurs terminaux texte.
Je n'ai que la console principale et un ctrl+alt+fx ne donne que des
écrans noirs. Naturellement, j'ai configuré wscons.conf pour cela.

Parce dans ce cas, je risque de t'embêter un peu ;-) Sur le site
releng de NetBSD, il est indiqué que la branche 6 compile sans
erreur et, comment dire, ce n'est pas le cas chez moi...



Moi je n'ai pas eu de problemes mais je n'ai fait que de la cross-compilation.



Je n'ai pas installé de cross-compilateur. Je compile directement
sur la machine cible. Je peux te remonter quelques erreurs si ça te
dit quelque chose. Il y a des erreurs d'explosion en vol de awk
(gawk fait de même) et des erreurs qui semblent plus provenir du
code ne NetBSD lui-même.

J'ai aussi
une petite interrogation sur smartctl qui ne semble pas fonctionner.



est-ce que atactl fonctionne ?



fuloong-2# atactl /dev/wd0 smart enable
atactl: ATAIOCCOMMAND failed: Inappropriate ioctl for device
fuloong-2#

Ce disque est reconnu comme :

wd0 at atabus0 drive 0
wd0: <WDC WD1600BEVT-22A23T0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 149 GB, 310101 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(viaide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs

Ce qui n'est pas tout à fait aberrant.

Cordialement,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
Manuel Bouyer
JKB wrote:
D'accord (c'est ce que Miod m'a soufflé dans l'oreille cette nuit
en signalant que tu lui avais piqué son code ;-) )

La question suivante est donc : comment bootes-tu cette machine ? Je
n'ai pas réussi à l'installer directement via la procédure
officielle pour cause de terminal pas assez large (le menu de
partitionnement échoue).



Ha, moi j'ai tout fait par console serie (je n'ai pas trop de place
chez moi, donc 1 seul ecran). Et je ne suis pas sur que le code
ai ete ajoute a sysinst pour gerer le boot sur cette machine de toute
facons.

J'ai donc détaré directement les sets
binaires, donc je ne sais pas s'il existe un outil pour booter
simplement. Aujourd'hui, j'en suis à utiliser une clef USB avec un
boot.cfg et le noyau, d'où mon problème de ext2 pour faire la même
chose à partir du disque dur. Mais peut-être existe-t-il un bout de
code à coller sur cette partition ext2 pour charger le noyau qui se
trouve sur / ?



Non, il n'y a pas ca. J'ai mis le kernel sur la partition ext2.
Si pmon fourni une API raisonnable pour lire le disque de boot, on
peut facilement faire un boot loader mais je n'ai pas regarde

Je ne sais pas si je suis très clair... J'hésite
aussi à utiliser un truc comme grub car celui que j'ai bricolé sous
Linux, s'il fonctionne, ne donne pas accès au clavier (alors que les
bons modules sont chargés). Quant à PMON, je ne me vois pas le
modifier pour qu'il comprenne ffs et fss2...

Par ailleurs, comment fais-tu pour avoir plusieurs terminaux texte.
Je n'ai que la console principale et un ctrl+alt+fx ne donne que des
écrans noirs. Naturellement, j'ai configuré wscons.conf pour cela.



Comme je n'ai pas d'ecran je n'ai pas essaye ca non plus. Est-ce que tu
as mis wscons=YES dans /etc/rc.conf ? il faut aussi mettre les ttyE* a on
dans /etc/ttys (d'apres les symptomes je dirais que c'est ca qui manque)

>> Parce dans ce cas, je risque de t'embêter un peu ;-) Sur le site
>> releng de NetBSD, il est indiqué que la branche 6 compile sans
>> erreur et, comment dire, ce n'est pas le cas chez moi...
>
> Moi je n'ai pas eu de problemes mais je n'ai fait que de la cross-compilation.

Je n'ai pas installé de cross-compilateur. Je compile directement
sur la machine cible. Je peux te remonter quelques erreurs si ça te
dit quelque chose. Il y a des erreurs d'explosion en vol de awk
(gawk fait de même)



Ca c'est le plus ennuyeux, ca pourrait etre un bug de toolchain.

et des erreurs qui semblent plus provenir du
code ne NetBSD lui-même.



C'est plus etonnant, mais la procedure recommandee est d'utiliser build.sh;
du coup il est possible qu'il manque des trucs pour les compilations a la
main.


>> J'ai aussi
>> une petite interrogation sur smartctl qui ne semble pas fonctionner.
>
> est-ce que atactl fonctionne ?

fuloong-2# atactl /dev/wd0 smart enable
atactl: ATAIOCCOMMAND failed: Inappropriate ioctl for device
fuloong-2#

Ce disque est reconnu comme :

wd0 at atabus0 drive 0
wd0: <WDC WD1600BEVT-22A23T0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 149 GB, 310101 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(viaide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs



Ca doit encore etre une histoire de compat32 qui ne gere pas ces ioctls.


--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--
Avatar
JKB
Le Wed, 12 Dec 2012 09:40:11 +0000 (UTC),
Manuel Bouyer écrivait :
JKB wrote:
D'accord (c'est ce que Miod m'a soufflé dans l'oreille cette nuit
en signalant que tu lui avais piqué son code ;-) )



La question suivante est donc : comment bootes-tu cette machine ? Je
n'ai pas réussi à l'installer directement via la procédure
officielle pour cause de terminal pas assez large (le menu de
partitionnement échoue).



Ha, moi j'ai tout fait par console serie (je n'ai pas trop de place
chez moi, donc 1 seul ecran). Et je ne suis pas sur que le code
ai ete ajoute a sysinst pour gerer le boot sur cette machine de toute
facons.

J'ai donc détaré directement les sets
binaires, donc je ne sais pas s'il existe un outil pour booter
simplement. Aujourd'hui, j'en suis à utiliser une clef USB avec un
boot.cfg et le noyau, d'où mon problème de ext2 pour faire la même
chose à partir du disque dur. Mais peut-être existe-t-il un bout de
code à coller sur cette partition ext2 pour charger le noyau qui se
trouve sur / ?



Non, il n'y a pas ca. J'ai mis le kernel sur la partition ext2.
Si pmon fourni une API raisonnable pour lire le disque de boot, on
peut facilement faire un boot loader mais je n'ai pas regarde



J'ai aussi procédé comme celà. Mais il me reste une interrogation
que je qualifierai d'existentielle. Si je mets le noyau sur une clef
usb et que je boote avec "boot -k (usb0,0)/netbsd)", ça fonctionne.

En revanche, si j'écris :

fuloong-2# cat /boot/boot.cfg
default 0
timeout 10
showmenu 1

title Boot NetBSD
kernel (wd0,0)/netbsd
args -k

le noyau est chargé, mais le contrôleur EHCI m'insulte à grands
coups de "strange EHCI port" et le clavier n'est pas utilisable. En
revanche, une clef USB provoque bien l'apparition de /dev/sd0.
Le fait de débrancher le clavier provoque la disparition du message
d'insulte.

Je ne sais pas si je suis très clair... J'hésite
aussi à utiliser un truc comme grub car celui que j'ai bricolé sous
Linux, s'il fonctionne, ne donne pas accès au clavier (alors que les
bons modules sont chargés). Quant à PMON, je ne me vois pas le
modifier pour qu'il comprenne ffs et fss2...



Par ailleurs, comment fais-tu pour avoir plusieurs terminaux texte.
Je n'ai que la console principale et un ctrl+alt+fx ne donne que des
écrans noirs. Naturellement, j'ai configuré wscons.conf pour cela.



Comme je n'ai pas d'ecran je n'ai pas essaye ca non plus. Est-ce que tu
as mis wscons=YES dans /etc/rc.conf ?



Oui.

il faut aussi mettre les ttyE* a on
dans /etc/ttys (d'apres les symptomes je dirais que c'est ca qui manque)



Gagné. Je suppose que je dois coller :

ttyE0 "/usr/libexec/getty Pc" vt220 off secure
ttyE1 "/usr/libexec/getty Pc" vt220 on secure
ttyE2 "/usr/libexec/getty Pc" vt220 on secure
ttyE3 "/usr/libexec/getty Pc" vt220 on secure

La première à off car elle est déjà occupée par la console.

>> Parce dans ce cas, je risque de t'embêter un peu ;-) Sur le site
>> releng de NetBSD, il est indiqué que la branche 6 compile sans
>> erreur et, comment dire, ce n'est pas le cas chez moi...
>
> Moi je n'ai pas eu de problemes mais je n'ai fait que de la cross-compilation.



Je n'ai pas installé de cross-compilateur. Je compile directement
sur la machine cible. Je peux te remonter quelques erreurs si ça te
dit quelque chose. Il y a des erreurs d'explosion en vol de awk
(gawk fait de même)



Ca c'est le plus ennuyeux, ca pourrait etre un bug de toolchain.

et des erreurs qui semblent plus provenir du
code ne NetBSD lui-même.



C'est plus etonnant, mais la procedure recommandee est d'utiliser build.sh;
du coup il est possible qu'il manque des trucs pour les compilations a la
main.



J'ai utilisé build.sh. Dès que j'arrive à stabiliser la chose, je te
mets ici les erreurs renvoyées.

>> J'ai aussi
>> une petite interrogation sur smartctl qui ne semble pas fonctionner.
>
> est-ce que atactl fonctionne ?



fuloong-2# atactl /dev/wd0 smart enable
atactl: ATAIOCCOMMAND failed: Inappropriate ioctl for device
fuloong-2#



Ce disque est reconnu comme :



wd0 at atabus0 drive 0
wd0: <WDC WD1600BEVT-22A23T0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 149 GB, 310101 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(viaide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs



Ca doit encore etre une histoire de compat32 qui ne gere pas ces ioctls.



Rhah zut... J'aimerais regarder de plus près la santé du disque
parce que j'ai des plantages inexplicables (reboot sans message
d'erreur préalable) et dans les logs, je vois :

wd0a: error reading fsbn 57608073 of 57608000-57608127 (wd0 bn 57872265;
cn 57412 tn 15 sn 24)
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24)
wd0: (uncorrectable data error)

Cordialement,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
Manuel Bouyer
JKB wrote:
J'ai aussi procédé comme celà. Mais il me reste une interrogation
que je qualifierai d'existentielle. Si je mets le noyau sur une clef
usb et que je boote avec "boot -k (usb0,0)/netbsd)", ça fonctionne.

En revanche, si j'écris :

fuloong-2# cat /boot/boot.cfg
default 0
timeout 10
showmenu 1

title Boot NetBSD
kernel (wd0,0)/netbsd
args -k

le noyau est chargé, mais le contrôleur EHCI m'insulte à grands
coups de "strange EHCI port" et le clavier n'est pas utilisable. En
revanche, une clef USB provoque bien l'apparition de /dev/sd0.
Le fait de débrancher le clavier provoque la disparition du message
d'insulte.



Je me suis un peu battu avec pmon aussi; je ne suis pas sur qu'il ne
soit pas un peu buggue ...


[...]
> il faut aussi mettre les ttyE* a on
> dans /etc/ttys (d'apres les symptomes je dirais que c'est ca qui manque)

Gagné. Je suppose que je dois coller :

ttyE0 "/usr/libexec/getty Pc" vt220 off secure
ttyE1 "/usr/libexec/getty Pc" vt220 on secure
ttyE2 "/usr/libexec/getty Pc" vt220 on secure
ttyE3 "/usr/libexec/getty Pc" vt220 on secure

La première à off car elle est déjà occupée par la console.



oui c'est ca


[...]
Rhah zut... J'aimerais regarder de plus près la santé du disque
parce que j'ai des plantages inexplicables (reboot sans message
d'erreur préalable) et dans les logs, je vois :

wd0a: error reading fsbn 57608073 of 57608000-57608127 (wd0 bn 57872265;
cn 57412 tn 15 sn 24)
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24), retrying
wd0: (uncorrectable data error)
wd0a: error reading fsbn 57608073 (wd0 bn 57872265; cn 57412 tn 15 sn
24)
wd0: (uncorrectable data error)



Ca ne sent pas tres bon effectivement, mais de la a faire rebooter
la machine ...

--
Manuel Bouyer
NetBSD: 26 ans d'experience feront toujours la difference
--
Avatar
Miod Vallat
Je me suis un peu battu avec pmon aussi; je ne suis pas sur qu'il ne
soit pas un peu buggue ...



Non, pmon n'est pas bogué.

En revanche, la version qu'en ont dérivé les programmeurs de Lemote est
bogué jusqu'à la moelle, aucune des commandes qu'ils ont rajouté n'est
fiable, et celles qui existaient déjà ont pris grave. Ça marche, mais
par accident, et seulement dans des conditions normales de température
et pression.

(Et encore, c'est devenu pire dans le pmon de la génération suivante de
systèmes).
Avatar
Miod Vallat
Je me suis un peu battu avec pmon aussi; je ne suis pas sur qu'il ne
soit pas un peu buggue ...



Non, pmon n'est pas bogué.

En revanche, la version qu'en ont dérivé les programmeurs de Lemote est
boguée jusqu'à la moelle, aucune des commandes qu'ils ont rajouté n'est
fiable, et celles qui existaient déjà ont pris grave. Ça marche, mais
par accident, et seulement dans des conditions normales de température
et pression.

(Et encore, c'est devenu pire dans le pmon de la génération suivante de
systèmes).
1 2