Como faço para iniciar meu laptop com partição raiz no pool fino lvm2

3

Meu laptop está configurado como sistema de inicialização dupla com o Ubuntu 14.04 (e o windows 8.1). Ultimamente eu substituí as partições raiz e swap dedicadas por uma partição lvm2 (VG (Volume Group) LinuxBereich) contendo LVs (Logical Volume) LinuxSwap, LinuxRoot e LinuxHome. Há cópias de root e home em LVs RootArea de thin pool e HomeArea denominadas Linux_Root e Linux_Boot.

  • 3.13.0-62-generic inicia ou retoma corretamente, a partir do pool não LV.
  • O
  • 3.13.0-63-generic não encontra a partição raiz e cai no shell do busybox. Depois de ativar os LVs LinuxSwap, LinuxRoot e LinuxHome com lvm, a inicialização prossegue sem mais problemas.
  • Nenhuma das versões (62/63) começa em LV no pool thin. Tentando:
    lvm lvchange -ay LinuxBereich / Linux_Root
    (ou Linux_Home, RootArea, HomeArea)
    do shell busybox, resulta em:
    / sbin / modprobe falhou: 1
    Não é possível ler a versão de destino do pool dinâmico.
    Não é possível processar o LV Linux_Root: suporte ao target de thin-pool ausente do kernel?

Seria bom se os LVs fossem ativados automaticamente em 3.13.0-63-generic.
Seria ainda melhor se o sistema fosse iniciado a partir de thin-pool. Qualquer idéia é bem vinda. Talvez precise de mais paciência.
O seu Wolfgang

Soluções:

  • 3.13.0-63-genérico (e 3.13.0-65-genérico) começa a partir de LV agora sem problema.
    Causa era um arquivo ausente no /boot/initrd.img-3.13.0-63-generic que está presente em /boot/initrd.img-3.13.0-63-generic:
    -rw-r - r-- 1 raiz raiz 272 4 de maio de 2012 lib / udev / rules.d / 85-lvm2.rules
    A verificação de tal arquivo resultou:
  

ls -l /lib/udev/rules.d/85-lvm*
  -rw-r - r-- 1 raiz raiz 272 4 de maio de 2012 /lib/udev/rules.d/85-lvm2.rules.drblsave

para que o arquivo estivesse presente, mas renomeado.

  

cp -p /lib/udev/rules.d/85-lvm2.rules.drblsave   /lib/udev/rules.d/85-lvm2.rules

e

  

update-initramfs -u

fez o truque.

Para obter uma tabela de conteúdo ordenada do initrd.img:

  

para n em 62 63 65; do zcat /boot/initrd.img-3.13.0-$n-generic|cpio   -itv | class -k9 & gt; $ n.lst; concluído

Sem tempo de modificação e versão do kernel

  

para n em 62 63 65; do sed / s 3.13.0-6. / 3.13.0-6? / g '$ n.lst | cut -c   1-42,56- & gt; $ n.lsu; concluído

  • Não é iniciado a partir do thin pool LV, por causa de nenhum suporte ao kernel. Isso é estranho, porque o sistema em execução é capaz de lidar com volumes finos.

    lsmod |grep -ie dm_thin_pool -e dm_persistent_data -e dm_bio_prison -e dm_bufio -e libcrc32c
    dm_thin_pool           46897  7 
    dm_persistent_data     61675  1 dm_thin_pool
    dm_bufio               27539  1 dm_persistent_data
    dm_bio_prison          15501  1 dm_thin_pool
    libcrc32c              12644  1 dm_persistent_data
    
    for n in  dm_thin_pool dm_persistent_data dm_bio_prison dm_bufio libcrc32c;do modinfo $n;done|grep filename:|sort -u
    filename:       /lib/modules/3.13.0-65-generic/kernel/drivers/md/dm-bio-prison.ko
    filename:       /lib/modules/3.13.0-65-generic/kernel/drivers/md/dm-bufio.ko
    filename:       /lib/modules/3.13.0-65-generic/kernel/drivers/md/dm-thin-pool.ko
    filename:       /lib/modules/3.13.0-65-generic/kernel/drivers/md/persistent-data/dm-persistent-data.ko
    filename:       /lib/modules/3.13.0-65-generic/kernel/lib/libcrc32c.ko
    

Assim, foi criado um arquivo / etc / initramfs-tools / hooks / lvm2thin:

    #!/bin/sh
    PREREQ=""
    prereqs()
    {
         echo "$PREREQ"
    }

    case  in
    prereqs)
         prereqs
         exit 0
         ;;
    esac

    . /usr/share/initramfs-tools/hook-functions
    # Begin real processing below this line
    copy_exec /lib/modules/${version}/kernel/drivers/md/dm-thin-pool.ko
    copy_exec /lib/modules/${version}/kernel/drivers/md/dm-bio-prison.ko
    copy_exec /lib/modules/${version}/kernel/drivers/md/dm-bufio.ko
    copy_exec /lib/modules/${version}/kernel/drivers/md/persistent-data/dm-persistent-data.ko

Defina permissões adequadas.

    chmod 755 /etc/initramfs-tools/hooks/lvm2thin 
    ls -l /etc/initramfs-tools/hooks/lvm2thin 
    -rwxr-xr-x 1 root root 583 Okt  8 18:16 /etc/initramfs-tools/hooks/lvm2thin

e novamente

  

update-initramfs -u

concluído.

    
por Wolfgang Koch 14.09.2015 / 00:08

0 respostas