Je viens de faire une installation à partir du 10.10 Desktop LiveCD, en transformant le volume racine en LVM LV.
Apparemment, cela n'est pas supporté. Je l'ai géré en prenant les mesures suivantes avant de lancer l'application du programme d'installation graphique:
lvm2
sur le système en cours d'exécution/var
; Je ne pense pas que cela soit pertinent.Après avoir suivi ces étapes, l’installateur graphique a proposé les deux LV comme cibles d’installation; J'ai volontiers accepté, en mettant aussi /boot
sur une partition principale distincte de la partition LVM.
L'installation semblait se dérouler sans heurts et j'ai vérifié que les volumes racine et var contenaient tous deux des structures de répertoires acceptables.
Cependant, le démarrage échoue. si j'ai bien compris ce qui s'est passé, j'ai été déposé dans une busybox s'exécutant dans le système de fichiers initrd.
Bien que je n'aie pas encore parcouru l'intégralité de la documentation grub2, il semble que l'entrée qui tente de démarrer mon nouveau système est correcte:
menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set $UUID_OF_BOOT_FILESYSTEM
linux /vmlinuz-2.6.35-22-generic root=/dev/mapper/$LVM_VOLUME_GROUP-root ro quiet splash
initrd /initrd.img-2.6.35-22-generic
}
Note que $ VARS est remplacé dans le grub.cfg
par les valeurs correspondantes.
J'ai redémarré dans le livecd et ai décompressé l'image initrd dans un répertoire temporaire. Il semble que l'image initrd manque de fonctionnalité LVM. Par exemple, si je lis /usr/share/initramfs-tools/hooks/lvm2
(installé avec lvm2
sur le système démarré par livecd, absent de celui installé), un exécutable lvm
devrait se trouver dans /sbin
; Ce n'est pas le cas.
Quel est le meilleur moyen de remédier à cette situation? Je me rends compte qu'il serait plus facile d'utiliser simplement le CD d'installation alternatif, qui prend apparemment en charge LVM, mais je ne veux pas attendre qu'il soit téléchargé puis réinstallé.
Vous frappez le problème droit dans la tête: initramfs ne prend pas en charge LVM. Voici comment y remédier:
lvm2
dans l'environnement en directAfficher le groupe de volumes (si -a y ne fonctionne pas, essayez -a oui)
vgchange -a y
Obtenez la racine LV,/boot et/dev montés sous l'arborescence séparée
mkdir /newroot
mount /dev/yourVG/rootLV /newroot
mount /dev/yourbootpartition /newroot/boot
mount -o bind /dev /newroot/dev
Copiez les paquetages nécessaires dans l'arborescence/newroot
cp /var/cache/apt/archives/*deb /newroot/tmp/
Chroot dans la nouvelle arborescence et installez les packages
chroot /newroot
cd /tmp
dpkg -i *.deb
À ce stade, les choses devraient revenir à la normale (puisque initramfs sera régénéré lorsque lvm2 sera installé). Sinon, vous pouvez jouer avec update-initramfs -u
dans le chroot.
Après avoir installé le système sur le disque dur, vous devez installer lvm2 sur ce système avant de pouvoir démarrer. Si vous avez installé lvm2 sur le livecd, les packages seront toujours dans/var/cache/apt/archives. Accédez à ce répertoire, montez le disque dur et installez les packages à l'aide de dpkg --root =/mnt * .deb. Dans votre cas, vous devez monter la fs racine sur/mnt, ainsi que la fs var dans/mnt/var.
De plus, vous n'avez pas besoin de la partition/boot séparée, et une partition/var séparée est discutable.
J'ai fini par faire la plupart du temps ce que Kees Cook a joliment présenté, avec l'aide de la dernière section de cette procédure pas à pas . Toutefois:
/dev
. Il semble que cela ait causé des messages d'erreur plus tard. voir ci-dessous./var
sur la nouvelle racine en plus de /boot
.Je n'ai pas copié les debs dans le /tmp
de la nouvelle racine. Au lieu de cela, j'ai exécuté # apt-get install aptitude; aptitude install lvm2
après chroot
ing.
aptitude
, et peut-être aussi apt-get
, suivra les paquets qui ont été installés explicitement et ceux qui ont été installés automatiquement en tant que dépendances.apt-cacher-ng
), je n'ai même pas eu à attendre qu'ils soient téléchargés à nouveau. J'ai dû créer un fichier à /etc/apt/apt.conf.d/02proxy
contenant Acquire::http::Proxy "http://local-apt-proxy-server:3142";
avant d'exécuter apt-get
. J'avais fait la même chose avant de commencer à installer des packages tout en exécutant le LiveCD avant de procéder à l'installation.J'ai reçu un message d'erreur ou un avertissement à quelques reprises, indiquant
Can not write log, openpty() failed (/dev/pts not mounted?)
** mount -o bind/dev/pts/mnt/YouNameIt/dev/pts
This did not prevent the appropriate lines from being added to `/var/log/dpkg.log`.
I suspect that this issue could have been averted by bind-mounting `/dev`, but I don't really understand what it means, i.e. I don't know what log it's referring to, or why it would need to access a pty in order to write to a log.