J’ai souhaité ne pas conservé [MacOS X|http://fr.wikipedia.org/wiki/Mac_OS_X], donc NetBSD occupera la totalité du disque (56G). De plus, toute la configuration se fera avec un clavier en __QWERTY__.
!!!Quelques remarques à propos de MacOS X
Pour démarrer à partir du CD, il faut obtenir le prompt Open Firmware. Il faut appuyer simultanément sur les touches __commande__ + __option__ + __O__ + __F__.
La touche commande est celle où il y a la pomme. Option est la touche @@Alt@@.
__/! Sous le prompt Open Firmware, le clavier est en QWERTY (pour les claviers AZERTY).__
Ensuite on va modifier la valeur de l’@@auto-boot@@. Par défaut cette valeur est à __true__, on va la mettre à __false__.
/// ok
0 > setenv auto-boot? false
0 > reset-all///
__Remarque :__ On peut faire la même chose sous MacOS X, dans la console tapez :
///sudo su
nvram ‘auto-boot?’=’false’
exit
///
!!!Let’s go
Pour »booter » sur le CD à partir du prompt :
/// ok
0 > boot cd:,ofwboot.xcf netbsd.macppc///
On valide le choix de l’émulateur de terminal, mais on ne procède pas à l’installation, il faut choisir @@(S)hell@@.
!!Le partionnement
Depuis la version 5.0.x, l’outil de partionnement, [pdisk(8)|http://netbsd.gw.com/cgi-bin/man-cgi?pdisk+.macppc+NetBSD-current] est présent dans le média d’installation.
__ /! LE CLAVIER EST EN QWERTY et LE SHELL /bin/sh__
On peut lancer cette commande :
///# /sbin/pdisk /dev/wd0c
Edit /dev/wd0c –
Command (? for help):///
La lettre « c » correspond à la totalité du disque.
On va ré-initialiser la table des partitions grâce à l’option __i__. Cela a également pour effet de supprimer toutes les partitions.
Ensuite, on va créer une partition particulière, qui servira plus tard à stocker le fichier @@ofwboot.xcf@@. Cette partition doit être dans le format __HFS__ ou __[HFS+|http://en.wikipedia.org/wiki/HFS_Plus|en]__.
* option : C (__C majuscule__)
* offset : 2p (car c’est la deuxième partition)
* size : 32m
* type : Apple_HFS
* name : boot (le nom n’a aucune importance)
Maintenant, on va partitionner le disque pour installer le futur système.
Pour la racine :
* option : c (__c minuscule__)
* offset : 3p
* size : 5g
* »bzb bit » : a
* name : root
Pour la »swap » :
* option : c (__c minuscule__)
* offset : 4p
* size : 1g
* »bzb bit » : b
* name : swap
Pour la partition temporaire (/tmp) :
* option : c (__c minuscule__)
* offset : 5p
* size : 512m
* »bzb bit » : e
* name : tmp
Pour la partition /var :
* option : c (__c minuscule__)
* offset : 6p
* size : 1g
* »bzb bit » : f
* name : var
Pour la partition /usr :
* option : c (__c minuscule__)
* offset : 7p
* size : 35g
* »bzb bit » : g
* name : usr
Pour la partition /home :
* option : c (__c minuscule__)
* offset : 8p
* size : 8p (prend la totalité de l’espace libre)
* »bzb bit » : h
* name : home
L’option « p » affiche toutes les partitions (dans mon cas) :
///Command (? for help): p
Partition map (with 512 byte blocks) on ‘/dev/wd0c’
#: type name length base ( size )
1: Apple_partition_map Apple 63 @ 1
2: Apple_HFS boot 65536 @ 64 ( 32.0M)
3: Apple_UNIX_SVR2 root 10485760 @ 65600 ( 5.0G) S0 RUFS k0 /
4: Apple_UNIX_SVR2 swap 2097152 @ 10551360 ( 1.0G) S1 SFS k0 (swap)
5: Apple_UNIX_SVR2 tmp 1048576 @ 12648512 (512.0M) S2 UFS k0
6: Apple_UNIX_SVR2 var 2097152 @ 13697088 ( 1.0G) S2 UFS k0
7: Apple_UNIX_SVR2 usr 73400320 @ 15794240 ( 35.0G) S2 UFS k0 /usr
8: Apple_UNIX_SVR2 home 28015680 @ 89194560 ( 13.4G) S2 UFS k0
Device block size=512, Number of Blocks=117210240 (55.9G)
DeviceType=0x0, DeviceId=0x0
Command (? for help): ///
Pour connaître le véritable nom de chacune de nos partitions $$On parle généralement de »slices ».$$, on doit utiliser [disklabel(8)|http://netbsd.gw.com/cgi-bin/man-cgi?disklabel+.macppc+NetBSD-current].
///# disklabel /dev/wd0
# /dev/wd0c:
type: ESDI
disk: FUJITSU MHT2060A
[…]
8 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 10485760 65600 4.2BSD 0 0 0 # (Cyl. 65*- 10467*)
b: 2097152 10551360 swap # (Cyl. 10467*- 12548*)
c: 117210240 0 unused 0 0 # (Cyl. 0 – 116279)
d: 65536 64 HFS # (Cyl. 0*- 65*)
e: 2097152 13697088 4.2BSD 0 0 0 # (Cyl. 13588*- 15668*)
f: 73400320 15794240 4.2BSD 0 0 0 # (Cyl. 15668*- 88486*)
g: 1048576 12648512 4.2BSD 0 0 0 # (Cyl. 12548*- 13588*)
h: 28015680 89194560 4.2BSD 0 0 0 # (Cyl. 88486*- 116279)
disklabel: boot block size 0
disklabel: super block size 0///
On constate, qu’il n’y a pas de correspondance entre __pdisk__ et __disklabel__ au niveau des partitions. Il faut se référer à la taille.
Il faut savoir que : 2097152 correspond à 1g, de plus __a__ est toujours la racine, et __b__ la swap. On peut ainsi déduire l’ordre des partitions par déduction.
On peut formater les partitions avec [newfs(8)|http://netbsd.gw.com/cgi-bin/man-cgi?newfs+.macppc+NetBSD-current]. Il faudra préciser les partitions en »raw device » et non en »bloc device » (concrètement on rajoute la lettre « r »).
///# newfs -m 5 /dev/rwd0a
# newfs -m 5 /dev/rwd0e
# newfs -m 5 /dev/rwd0g
# newfs -m 5 /dev/rwd0f
# newfs -m 5 /dev/rwd0h
///
L’étape suivante consiste à créer le fichier @@/etc/fstab@@. Pour cela on va « monter » la partition racine, et créer les différents répertoires correspondant aux autres partitions.
///# mount /dev/wd0a /mnt2
# mkdir /mnt2/etc
# mkdir /mnt2/tmp
# mkdir /mnt2/usr
# mkdir /mnt2/var
# mkdir /mnt2/home
///
Ne connaissant pas l’éditeur [ed(1)|http://netbsd.gw.com/cgi-bin/man-cgi?ed+.macppc+NetBSD-current], je passe par la fonction @@echo@@ pour écrire dans le fichier @@/mnt2/etc/fstab@@.
///# echo « dev/wd0a / ffs rw 1 1 » > /mnt2/etc/fstab
# echo « /dev/wd0b none swap sw 0 0 » >> /mnt2/etc/fstab
# echo « /dev/wd0e /var ffs rw,nocoredump 1 2 » >> /mnt2/etc/fstab
# echo « /dev/wd0f /usr ffs rw,nocoredump 1 2 » >> /mnt2/etc/fstab
# echo « /dev/wd0g /tmp ffs rw,nocoredump 1 2 » >> /mnt2/etc/fstab
# echo « /dev/wd0h /home ffs rw,nocoredump 1 2″ >> /mnt2/etc/fstab
///
On « démonte » la partition, et on lance @@sysinst@@. Il faut choisir cette fois-ci __Réinstaller des composants__.
Si tout c’est parfaitement déroulé, on quitte @@sysinst@@ pour récuper le shell. On va réaliser un [chroot(8)|http://netbsd.gw.com/cgi-bin/man-cgi?chroot+.macppc+NetBSD-current] pour commencer à configuer notre système.
///# mount -o rw /dev/wd0a /mnt2
# mount -o rw /dev/wd0f /mnt2/usr
# mount -o rw /dev/wd0e /mnt2/var
///
La partition @@/var@@ n’est pas nécessaire, par contre si vous comptez utiliser [vi(1)|http://netbsd.gw.com/cgi-bin/man-cgi?vi+.macppc+NetBSD-current], il la faut pour @@/var/tmp/vi.recover@@.
///# chroot -u root /mnt2 /bin/ksh
///
A partir de là, on est à la racine de notre système. On va tout d’abord mettre le clavier en AZERTY.
///# wsconsctl -w encoding=fr
///
Ensuite on va éditer le fichier @@/etc/rc.conf@@, voici un extrait :
///[…]
# If this is not set to YES, the system will drop into single-user mode.
#
rc_configured=YES
# Add local overrides below
#
wscons=YES
dhclient=YES
hostname=brigand.errements.net
net_interfaces= »gem0″
critical_filesystems_local= »/var »
clear_tmp=YES
sshd=YES
cron=YES
postfix=NO
ntpdate=YES
ntpdate_hosts= »ntp.obspm.fr »///
Les deux premiers paramètres sont les plus importants.
Dans le fichier @@/etc/wscons.conf@@ on rajoute cette ligne :
///
[…]
# Select a kernel builtin keyboard map by uncommenting the following line and
# altering the country code to your requirements
# (choose from user, us, uk, de, dk, it, fr, jp, sv, no, es, pt, cz, hu).
# See wsconsctl(8), pckbd(4), ukbd(4) etc. for more details.
encoding fr
[…]///
Pour préparer les futurs utilisateurs les fichiers à modifier / créer :
* /etc/login.conf
* /etc/skel
On est prêt à redémarrer la machine. Il faut connaître le numéro de la partition racine, si on l’a oublié, __pdisk__.
///# exit
# halt///
!!!Fin de l’installation
__/! Il faut conserver le CD dans le lecteur.__
Au prompt de l’OpenFirmware :
/// ok
0 > boot cd:,ofwboot.xcf hd:3,/netbsd
///
Normalement la connexion réseau devrait être établie, on va pouvoir installer [hfsutils|http://pkgsrc.se/sysutils/hfsutils]. Là il y a plusieurs méthodes :
* par compilation, via pkgsrc
* en le téléchargeant par ftp / [pkg_add(1)|http://netbsd.gw.com/cgi-bin/man-cgi?pkg_add+.macppc+NetBSD-current] ou [pkgin|http://imil.net/pkgin/]
A l’heure où j’écris ces lignes, le »pkgsrc-bulk » pour les PowerPC donne ça comme résultat :
///pkgsrc 2010Q1 bulk build results
NetBSD 5.1/powerpc
Compiler: gcc
Summary:
Build started: Wed May 26 07:34:32 2010 UTC
Build ended: Thu Jun 3 23:42:33 2010 UTC
Successfully packaged: 8266
Packages really broken: 213
Pkgs broken due to them: 283
Total broken: 496
Not packaged: 1
Not available: 292
Total: 497
///
»[source|http://mail-index.netbsd.org/pkgsrc-bulk/2010/06/04/msg007467.html] »
On peut formater notre partition de »boot » (celle qui est formatée en HFS).
///# hformat /dev/wd0d
///
On copie le fichier @@ofwboot.xcf@@ du CD sur cette partition. Il faut au préalable « monter » le CD.
///# mount -t cd9660 /dev/cd0a /mnt
# hcopy /mnt/ofwboot.xcf :
///
Le système est enfin prêt.
!!!Dernières remarques
A chaque démarrage, pour »booter », il faut écrire la ligne suivante :
/// ok
0 > boot hd:2,ofwboot.xcf hd:3,/netbsd///
On peut automatiser cette commande :
/// ok
0 > setenv boot-device hd:2,ofwboot.xcf
0 > setenv boot-file hd:3,/netbsd
0 > reset-all
///
Désormais à chaque démarrage, au prompt, il suffira de taper __boot__.
Suivant le gestionnaire de bureaux choisit, il faudra créer les partitions @@/proc@@ et @@/kern@@.
///# mkdir /proc
# mount -t procfs proc /proc
# mkdir /kern
# mount -t kernfs kernfs /kern
///
On rajoute ces lignes au fichier @@/etc/fstab@@.
///[…]
proc /proc procfs rw 0 0
kernfs /kern kernfs rw 0 0///