Je me permets de reprendre l'excellent article de guy qui décrit la procédure pour utiliser/configurer des volumes logiques sous NuTyX
Installer NuTyX sur un volume logique LVM guy_ 21 sept 2009
Prérequis
1. Le partionnement
Nous supposerons que votre(vos) disque(s) est(sont) déjà partitionné(s), que vous avez créé un volume logique pour y installer la distribution Linux NuTyX, et que ce volume logique a été formatté, par exemple en reiserfs. Si ce n'est pas le cas, nous vous conseillons d'utiliser un livecd, comme systemrescuecd ou RIPLinux
2. Le boot loader
Il s'agit d'utiliser un programme de boot qui puisse reconnaitre les partitions LVM. J'utilise grub2 (attention, grub2, pas grub legacy), actuellement la version 1.97beta3. Vous aurez à le compiler, ou à attendre qu'il figure dans les dépots de NuTyx 2009. Le Pkgfile que j'ai utilisé se trouve ici
sudo pkgmk -d
sudo pkgadd /srv/NuTyX/locale/grub2#1.97~beta3-1.pkg.tar.gz
3. Le paquet lvm2
Pour compiler LVM2, j'ai utilisé le Pkgfile de la CRUX, légèrement modifié, notamment pour utiliser la version 2.02.39, dernière version encore diponible qui ne m'a pas donné d'erreur avec device-mapper.
L'installation:
Nous allons boooter sur la version mini de l'iso NuTyX2009.
A l'écran “choisir la partition sur laquelle vous souhaitez installer …”, cliquer sur le boutton “Annuler”, et dans le menu principal, choisir “console”
Avant de commencer, je lance quelques terminaux virtuels, qui vont me permettre de lancer des commandes pendant l'installation, p.ex df -k, ps w, kill … J'atteinds ces terminaux gráce aux touches “ALT-F2”, “ALT-F3” et “ALT-F4”
getty 38400 tty2 & getty 38400 tty3 & getty 38400 tty4 &
Ensuite, il faut activer les volumes logiques
vgchange -a y
Vérifier
ls -l /dev/mapper crw-rw—- 1 root root 10, 61 sep 19 2009 control brw——- 1 root root 253, 0 sep 19 21:42 vg1-data brw——- 1 root root 253, 3 sep 19 21:42 vg1-nutest brw——- 1 root root 253, 2 sep 19 21:42 vg1-nutyx brw——- 1 root root 253, 1 sep 19 21:42 vg1-ubuntu
Pour installer NuTyX dans le volume logique “nutest” du volume groupe “vg1”, on monte ce volume logique
mount /dev/mapper/vg1-nutest /mnt/hd
On rajoute device-mapper dans la liste des packages à installer
vi install_2009.ash
Je commente la ligne 398 du script install_2009.ash, car je ne désire pas qu'il efface les packages déjà téléchargés en cas de problème
# rm -r ${MountFolder}/srv/NuTyX
et enfin, on peut lancer l'installation en ligne de commande
sh install_2009.ash /mnt/hd reiserfs be-latin1
on installe les paquets lvm2 et grub2 qu'on a compilé soi même
sudo pkgadd /srv/NuTyX/locale/lvm2#2.02.39-1.pkg.tar.gz sudo pkgadd /srv/NuTyX/locale/grub2#1.97~beta3-1.pkg.tar.gz
Modifier l' initrd
Pour que linux utilise notre filesystem, on passe par un initrd qui va reconnaitre lvm. On décomprime l'initrd de NuTyX
mv initrd initrd.gz gunzip initrd.gz mkdir ird31 cp initrd ird31/ cd ird31 sudo cpio -i < initrd
on modifie le script init en ajoutant les commandes lvm suivantes juste avant la ligne “mkdir /newroot”
## –> if [ -f /sbin/lvm ]; then
/sbin/lvm vgscan --ignorelockingfailure --mknodes if [ $? = 0 ]; then /sbin/lvm vgchange --ignorelockingfailure -ay fi
fi ## ←-
et enfin, on recrée l'initrd
cd .. find ./ird31 | cpio -H newc -o > initrd gzip initrd mv initrd.gz initrd.img
Installer grub2 comme boot loader sur votre pc L'installation de paquet grub2 doit être suivie de l'installation du boot-loader sur le pc Le fichier de configuration s'appelle /boot/grub/grub.cfg (et non plus /boot/grub/menu.lst comme dans grub legacy), en voici un exemple
grub-install –recheck /dev/sda
Autres configurations à faire
1. le fichier /etc/fstab
Il faut adapter la ligne correspondant à au filesystem /
2. le script de démarrage /etc/rc.d/init.d/lvmnodes
Ajouter ce fichier
3. le lien /etc/rc.d/rc.sysinit.d/S29lvmnodes
cd /etc/rc.d/rc.sysinit.d
ln -s ../init.d/lvmnodes S29lvmnodes
—– Annexe 1 ——————————————————-
# Description: Userspace toolset for logical volume management # URL: http://sourceware.org/lvm2 # Packager: Mark Rosenstand, mark at borkware dot net # Maintainer: Nathan Pardoe, npardoe at ticklestix dot co dot uk # Depends on: device-mapper
name=lvm2 ## version=2.02.43 version=2.02.39 release=1 source=(ftp://sources.redhat.com/pub/lvm2/LVM2.$version.tgz)
build() {
cd LVM2.$version
./configure \ --prefix=/usr \ --exec-prefix= \ --mandir=/usr/man \ --enable-lvm1_fallback \ --disable-readline make make DESTDIR=$PKG install
install -d -m 0700 $PKG/etc/lvm/{archive,backup}
install -d -m 1777 $PKG/var/lock
install -d -m 0700 $PKG/var/lock/lvm
# Remove device-mapper conflicts
## rm $PKG/lib/libdevmapper.so ## rm $PKG/lib/libdevmapper.so.1.02 ## rm $PKG/sbin/dmsetup ## rm $PKG/usr/include/libdevmapper.h ## rm $PKG/usr/man/man8/dmsetup* }
—– Annexe 2 ——————————————————-
#!/bin/sh ######################################################################## # Begin $rc_base/init.d/lvmnodes # # Description : mknodes lvm # # Authors : guy_ # # Version : 00.00 # # Notes : #########################################################################
. /etc/sysconfig/rc . ${rc_functions}
boot_mesg “Mapping lvm drives…” case “${1}” in
start)
if [ -f /sbin/lvm ]; then
/sbin/lvm vgscan --ignorelockingfailure --mknodes
evaluate_retval
error_value=${?}
if [ "${error_value}" = 0 ]; then
/sbin/lvm vgchange --ignorelockingfailure -a y
evaluate_retval
error_value=${?}
if [ "${error_value}" = 0 ]; then
echo_ok
exit 0
else
echo_failure
exit ${error_value}
fi
else
echo_failure
exit ${error_value}
fi
fi
;;
*)
echo "Usage: ${0} {start}"
exit 1
;;
esac
# End $rc_base/init.d/lvmnodes
—– Annexe 3 ——————————————————-
# Description: grub2 boot loader # URL: http://svn.savannah.gnu.org/viewvc/trunk/grub2 # Maintainer: NuTyX coreteam # Packager: # Depends on:
name=grub2 version=1.97~beta3 release=1 source=(ftp://alpha.gnu.org/gnu/grub/grub-$version.tar.gz)
build() {
cd grub-$version ./autogen.sh ./configure --prefix=/usr/local make make check make DESTDIR=$PKG install
}
—– Annexe 4 ——————————————————-
# Config file for GRUB2 - The GNU GRand Unified Bootloader # /boot/grub/grub.cfg
et timeout=15 set default=0 set menu_color_normal=light-blue/black set menu_color_highligth=light-cyan/blue
menuentry ” sdb1 - Debian GNU/Linux Lenny, kernel 2.6.26.1” { set root=(hd1,1) linux /vmlinuz root=/dev/hdb1 ro initrd /initrd.img }
menuentry ” vg1-nutyx - NuTyx 2009 RC2, kernel 2.6.30.4” { insmod lvm
set root=(vg1-nutyx) linux /boot/kernel root=/dev/mapper/vg1-nutyx raid=noautodetect ro initrd /boot/initrd }
menuentry ” sdb8 iso - NuTyX 2009 install” { loopback loop (hd1,8)/ISO/nutyx/NuTyX2009-i686.iso linux (loop)/isolinux/kernel initrd (loop)/isolinux/initrd ro quiet }