Ubuntu, PC-BSD et Windows 7 en multiboot

19 mar 2011

Voici le parcours à suivre pour avoir en multiboot 3 OS sur votre machine.

 

Comme d'habitude, commençons avec Windows... Rien à faire, faut l'installer en premier. Eventuellement vous pouvez déjà partitionner votre disque en 3 partitions ici  (ou 4 pour avoir une partition swap).

 

Ensuite : Ubuntu. A installer sur la 2ième partition. Vous pouvez faire une installation par défaut, juste au moment de sélectionner la partition faites attention de ne pas écraser Windows... Ubuntu est bien plus intélligent que Windows et va "voir" qu'il y a une version de Windows déjà installé et va adapter le Grub bootloader avec une ligne pour Windows. C'est d'ailleurs le Grub d'Ubuntu qu'on va adapter par après pour y insérer PC-BSD :-)

 

Et pour finir : l'installation de *BSD (FreeBSD ou PC-BSD). Avec PC-BSD vous faites exactement comme avec Ubuntu et vous prenez aussi une installation personnalisée à la question du disque. Là aussi, faites attention de prendre la bonne partition (appelé "slice" ici).

 

Jusqu'ici rien de neuf pour la pluspart entre vous :-)

 

Après le reboot à la fin de l'installation de PC-BSD, vous allez constater que PC-BSD n'est pas repris dans le menu de Grub. Nous allons l'ajouter :-)

On démarre Ubuntu et on ouvre un terminal (console). Le premier fichier à éditer : /etc/grub.d/40_custom. Voici le contenu du mien :

beni@bsdaddict:/etc/grub.d$ cat 40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "PC-BSD" {
set root='(hd0,3)'
makeactive
chainloader +1
}

beni@bsdaddict:/etc/grub.d$

La première ligne ne contient que le texte qui sera affiché dans le menu du bootloader. Vous pouvez bien sur y mettre ce que vous voulez ("Pinguin Killer" p. ex. est bon aussi...). Maisz la ligne importante ici est la deuxième : set root='(hd0,3)'. Remarquez les ticks autour des parenthèses. Le hd0 est votre premier disque dur et le 3 est la troisième partition sur laquelle PC-BSD est installée. Comment trouver la bonne partition ? Avec (sudo) fdisk -l :

beni@bsdaddict:/etc/grub.d$ sudo fdisk -l
[sudo] password for beni:

Schijf /dev/sda: 1500.3 GB, 1500301910016 bytes
255 koppen, 63 sectoren/spoor, 182401 cilinders
Eenheid = cilinders van 16065 * 512 = 8225280 bytes
Sectorgrootte (logischl/fysiek): 512 bytes / 512 bytes
in-/uitvoergrootte (minimaal/optimaal): 512 bytes / 512 bytes
Schijf-ID: 0xef6f6377

Apparaat Opstart   Begin       Einde     Blokken   ID  Systeem
/dev/sda1   *           1          13      102400    7  HPFS/NTFS
Partitie 1 eindigt niet op een cilindergrens.
/dev/sda2              13       51006   409600000+   7  HPFS/NTFS
/dev/sda3           51006      101999   409600000+  a5  FreeBSD
/dev/sda4          101999      182401   645830559+   5  uitgebreid
/dev/sda5          102000      150629   390620475   83  Linux
/dev/sda6          150630      182401   255208558+   c  W95 FAT32 (LBA)

Schijf /dev/sdb: 750.2 GB, 750156374016 bytes
255 koppen, 63 sectoren/spoor, 91201 cilinders
Eenheid = cilinders van 16065 * 512 = 8225280 bytes
Sectorgrootte (logischl/fysiek): 512 bytes / 512 bytes
in-/uitvoergrootte (minimaal/optimaal): 512 bytes / 512 bytes
Schijf-ID: 0xa4b57300

Apparaat Opstart   Begin       Einde     Blokken   ID  Systeem
/dev/sdb1               1       91201   732572001    7  HPFS/NTFS
beni@bsdaddict:/etc/grub.d$

Chez moi /dev/sda3 contient la partition BSD :-) Donc à adaptez suivant votre propre configuration.

Maintenant sauvegarder ce fichier et faites un "sudo update-grub" pour mettre à jour le fichier du bootloader Grub.

Rebootez et une nouvelle ligne s'affiche dans le menu boot de Grub. Vous devriez avoir accès à 3 OS maintenant.

 

Pour ceux qui n'ont pas (ou plus) de Windows sur leur machine : Ubuntu n'affiche pas le menu Grub au démarrage et pour rémédier cela on doit modifier un autre fichier : /etc/default/grub :

beni@bsdaddict:/etc/grub.d$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
beni@bsdaddict:/etc/grub.d$

 

Il suffit de mettre un commentaire devant "GRUB_HIDDEN_TIMEOUT=0" pour afficher le menu boot au démarrage du pc.

La suite, je viens de l'expliquer :-)

Bonne chance !

Forums: 
Portrait de Marc Heerbrant

Trouvé ceci qui revient au même

http://lists.freebsd.org/pipermail/freebsd-doc/2009-November/016465.html

osprober ne reconnait visiblement pas les partitions BSD . De nombreux posts existent mentionnant ce fait .