Desktop LiveCD'den LVM köküne önyüklenemeyen kurulumu düzeltme


9

10.10 Masaüstü LiveCD'den bir kurulum yaptım ve kök birimini LVM LV yaptım.

Görünüşe göre bu desteklenmiyor; GUI yükleyici uygulamasını başlatmadan önce bu adımları uygulayarak başardım:

  • lvm2paketin çalışan sisteme kurulması
  • sistemin sabit diskinde LVM tipi bir bölüm oluşturma
  • LVM araçlarını kullanarak fiziksel bir birim, bir birim grubu ve bir kök LV oluşturma. Ayrıca ikinci bir LV yarattım /var; bununla ilgili olduğunu düşünmüyorum.
  • iki LV'nin her birinde bir dosya sistemi (ext4) oluşturmak.

Bu adımları uyguladıktan sonra, GUI yükleyicisi iki LV'yi kurulum hedefi olarak sundu; /bootLVM bölümünden ayrı bir birincil bölüm koyarak memnuniyetle kabul ettim .

Kurulum sorunsuz gidiyor gibiydi ve hem kök hem de var birimlerinin kabul edilebilir görünümlü dizin yapıları içerdiğini doğruladım.

Ancak, önyükleme başarısız olur; ne olduğunu doğru anladıysam, initrd dosya sisteminde çalışan bir meşgul kutusuna düştüm.

Henüz grub2 belgelerinin tamamıyla çalışmamış olmama rağmen, yeni sistemimi önyüklemeye çalışan giriş doğru görünüyor:

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.cfgdeğerinin gerçekte karşılık gelen değerleriyle değiştirildiğini unutmayın .

Livecd'e yeniden başladım ve initrd görüntüsünü geçici bir dizine açtım. Görünüşe göre initrd görüntüde LVM işlevselliği yok. Örneğin, doğru bir şekilde okuyorsam /usr/share/initramfs-tools/hooks/lvm2(yüklü lvm2livecd önyüklemeli sistemde yüklü, yüklü sistemde mevcut değil), bir lvmyürütülebilir dosya yerleştirilmelidir /sbin; durum böyle değil.

Bu durumu düzeltmenin en iyi yolu nedir? Görünüşe göre LVM'yi destekleyen alternatif kurulum CD'sini kullanmanın daha kolay olacağını anlıyorum, ancak indirilmesini ve ardından yeniden yüklemesini beklemek istemiyorum.

Yanıtlar:


9

Sorunu kafasına vurdunuz: initramflerin LVM desteği yok. Bunu nasıl düzeltebileceğiniz aşağıda açıklanmıştır:

  1. LiveCD'yi yeniden başlatın
  2. lvm2Canlı ortama tekrar yükleyin
  3. Birim Grubu'nu açın (eğer -ay çalışmazsa -a evet'i deneyin)

    vgchange -a y
    
  4. Kök LV, / boot ve / dev'i ayrı ağacın altına monte edin

    mkdir /newroot
    mount /dev/yourVG/rootLV /newroot
    mount /dev/yourbootpartition /newroot/boot
    mount -o bind /dev /newroot/dev
    
  5. Gerekli paketleri / newroot ağacına kopyalayın

    cp /var/cache/apt/archives/*deb /newroot/tmp/
    
  6. Yeni ağaca kök ekleyip paketleri yükleyin

    chroot /newroot
    cd /tmp
    dpkg -i *.deb
    

Bu noktada, işler normale dönmelidir (lvm2 yüklendiğinde initramfs yeniden oluşturulacaktır). Değilse update-initramfs -u, krootun içinde koşarak oynayabilirsiniz .


Bind-mount / dev'in nedeni nedir?
intuited

Grubun yeniden çalıştırılması ve önyükleme sürücülerinin bulunduğu yeri bulmak istedim / dev ekledim. Ağın ağ içinde yukarı veya başka bir şekilde garip olmaması durumunda dpkg kullandım. Ağ oluşturma işe yararsa, bu günlerde daha iyi dep çözünürlük sağladığından "apt-get" i "aptitude" üzerinden öneriyorum.
Kees Cook

Bahşiş için teşekkürler apt-get, neyin ne olduğunu takip etmek zor. Bununla ilgili daha fazla bilgi için bağlantınız var mı?
intuited

1

Sistemi sabit diske kurduktan sonra, önyükleme yapmadan önce lvm2'yi bu sisteme kurmanız gerekir. Livecd'ye lvm2 kurduysanız, paketler / var / cache / apt / archives içinde olmaya devam edecektir. Bu dizine geçin, sabit diski takın ve paketleri dpkg --root = / mnt * .deb kullanarak sabit diske yükleyin. Sizin durumunuzda, fs kök dizinini / mnt dizinine ve var fs dizinini / mnt / var dizinine bağlamanız gerekir.

Ayrıca, ayrı / önyükleme bölümüne ihtiyacınız yoktur ve ayrı / var bir bölümü tartışmalıdır.


Güzel .. chroot-ing'den daha kolay . Sanırım bu aptitudeaçıkça olsa yüklü paketleri 'db kayıt olmaz , bu yüzden muhtemelen sadece lvm2ve bağımlılıkları bu şekilde yüklemeniz gerekir . Ayrı kullanmanın herhangi bir olumsuz yanı var /varmı? Ekstra 'gevşek' alan tahsis etme sorunu dışında? Anlık görüntü almak istiyorum, bu yüzden diğer büyük değişken dosyaları ile karıştırmak istemiyorum; Ana dizini /datasisteme bağlandıktan sonra oluşturulacak ayrı bir birimde bir müzik dizinine bağlamayı veya bağlamayı planlıyorum .
intuited

Ayrıca: Boot fs'yi de monte etmem gerekecek /mnt/boot, değil mi? lvm2Kurulumda yeni bir initrd oluşturan bir araya geldim .
intuited

@intuited no, her zamanki gibi manuel olarak kurulmuş olarak kaydedilecektir. Evet, bunlardan ayrı bir tane varsa, / boot monte etmeniz gerekir. Ayrı bir / değişkene sahip olmak anlık görüntülerde yardımcı olmaz.
psusi

Ayrı bir /varbölüm anlık görüntülerde yardımcı olmaz, hayır, ancak örneğin kök fs'lerin beklenmedik şekilde dolmasını önlemeye yardımcı olur. Anlık görüntü çekmede sorunlar yaratacağını mı söylüyorsunuz? Oh, bekle, diğer soru yorum dizisinde sensin. Boş ver ..
intuited

1

Çoğunlukla Kees Cook güzel ne koyuyor, bu izlenecek yolun son bölümünden bazı yardımı ile sona erdi . Ancak:

  • Bağlanmadım /dev. Bu daha sonra bazı hata mesajlarına neden gibi görünüyor; aşağıya bakınız.
  • Ayrıca sesimi /varyeni kök üzerine de ekledim /boot.
  • Senetleri /tmpyeni kökün içine kopyalamadım . Bunun yerine, ing # apt-get install aptitude; aptitude install lvm2sonra koştum chroot.

    • Bu eylemleri apt veritabanına kaydetmek için bunu yaptım: örneğin aptitude, ve belki de apt-get, hangi paketlerin açıkça yüklendiğini ve hangilerinin bağımlılık olarak otomatik olarak yüklendiğini izleyeceğim.
    • Aslında paketleri bir yerel apt proxy (çalışan apt-cacher-ng) üzerinden alıyorum çünkü onları tekrar indirmek için beklemek zorunda bile değildi. /etc/apt/apt.conf.d/02proxyÇalıştırmadan Acquire::http::Proxy "http://local-apt-proxy-server:3142";önce içeren bir dosya yapmak zorunda kaldım apt-get. Kurulumu yapmadan önce LiveCD'yi çalıştırırken paketleri kurmaya başlamadan önce de aynı şeyi yaptım.
    • Bir hata mesajı aldım veya birkaç kez uyarı aldım,

      Can not write log, openpty() failed (/dev/pts not mounted?)
      

** mount -o bağlama / 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.

Kendi cevabımı kabul ediyorum çünkü benim için iyi çalıştı; bazı durumlarda daha güvenilir olabilecek benzer bir çözüm için Kees'in cevabına bakınız.
intuited
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.