Я только что сделал установку с 10.10 Desktop LiveCD, сделав корневой том LVM LV.
По-видимому, это не поддерживается; Мне удалось это сделать, выполнив следующие действия перед запуском приложения установщика с графическим интерфейсом:
lvm2
в работающую систему /var
; это я не считаю уместным. После этих шагов установщик с графическим интерфейсом предложил два LV в качестве целей установки; Я с радостью согласился, также поместив /boot
в основной раздел, отдельный от раздела LVM.
Казалось, что установка прошла гладко, и я убедился, что как корневые, так и переменные тома содержат приемлемо выглядящие структуры каталогов.
Однако загрузка не удалась; если я правильно понял, что произошло, меня поместили в занятый ящик, работающий в файловой системе initrd.
Хотя я еще не проработал всю документацию по grub2, похоже, что запись, которая пытается загрузить мою новую систему, верна:
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
}
Примечание , что $ VARS заменяются в фактическом grub.cfg
их соответствующими значениями.
Я перезагрузился обратно в livecd и распаковал образ initrd во временный каталог. Похоже, что образу initrd не хватает функциональности LVM. Например, если я правильно читаю /usr/share/initramfs-tools/hooks/lvm2
(установлен с lvm2
в системе с livecd-загрузкой, а не в установленной), исполняемый файл lvm
должен находиться в /sbin
; это не тот случай.
Как лучше всего исправить эту ситуацию? Я понимаю, что было бы проще использовать альтернативный установочный компакт-диск, который, очевидно, поддерживает LVM, но я не хочу ждать, пока он загрузится, а затем придется переустанавливать.
Вы ударяете проблему прямо по голове: initramfs не имеет поддержки LVM. Вот то, как зафиксировать его:
lvm2
снова в Продуктивной средеПоднимите Volume Group (если-a y не работает попытка-a да),
vgchange -a y
Получите корневой LV, / начальная загрузка и/dev, смонтированный под отдельным деревом
mkdir /newroot
mount /dev/yourVG/rootLV /newroot
mount /dev/yourbootpartition /newroot/boot
mount -o bind /dev /newroot/dev
Скопируйте необходимые пакеты в/newroot дерево
cp /var/cache/apt/archives/*deb /newroot/tmp/
Chroot в новое дерево и установку пакеты
chroot /newroot
cd /tmp
dpkg -i *.deb
На данном этапе вещи должны вернуться к нормальному (так как initramfs будет повторно создан, когда lvm2 будет установлен). В противном случае можно играть с выполнением update-initramfs -u
в chroot.
После установки системы на жесткий диск, вам необходимо установить lvm2 в эту систему, прежде чем она сможет загрузиться. Если вы установили lvm2 на livecd, пакеты будут по-прежнему находиться в / var / cache / apt / archives. Перейдите в этот каталог, смонтируйте жесткий диск и установите пакеты на жесткий диск, используя dpkg --root = / mnt * .deb. В вашем случае вам нужно смонтировать root fs в / mnt, а также var fs в /mnt/var.
Также вам не нужен отдельный раздел / boot, а отдельный раздел / var сомнителен.
Я закончил тем, что делал в основном то, что хорошо выложил Киз Кук, с некоторой помощью из последнего раздела этого прохождения . Тем не менее:
/dev
. Похоже, это вызвало некоторые сообщения об ошибках позже; см. ниже. /var
к новому корню в дополнение к /boot
. Я не копировал дабы в /tmp
нового корня. Вместо этого я бежал # apt-get install aptitude; aptitude install lvm2
после chroot
инг.
aptitude
и, возможно, также apt-get
, будут отслеживать, какие пакеты были установлены явно, а какие были установлены автоматически как зависимости. [ 1127] apt-cacher-ng
), мне даже не пришлось ждать, пока они загрузятся снова. Мне пришлось сделать файл в /etc/apt/apt.conf.d/02proxy
, содержащий Acquire::http::Proxy "http://local-apt-proxy-server:3142";
, прежде чем запустить apt-get
. Я проделал то же самое, прежде чем начать установку пакетов во время работы с LiveCD перед установкой. Я пару раз получал сообщение об ошибке или предупреждение, сообщая
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.