Saya telah menginstal ulang server Linux dari CentOS 6 hingga 7. Server memiliki 3 drive - drive sistem SSD (kecuali semua host /home
) dan dua drive HDD 4TB yang menjadi tuan rumah /home
. Semuanya menggunakan LVM. Dua drive 4TB dicerminkan (menggunakan opsi raid di dalam LVM itu sendiri), dan mereka sepenuhnya diisi dengan partisi / home.
Masalahnya adalah bahwa meskipun disk 4TB dikenali dengan baik, dan LVM melihat volume tanpa masalah, itu tidak mengaktifkannya secara otomatis. Yang lainnya diaktifkan secara otomatis. Saya dapat mengaktifkannya secara manual, dan berfungsi.
Saya memiliki gambar drive sistem lama di / rumah. Itu juga mengandung volume LVM. Jika saya memasangnya kpartx
, dan LVM mengambilnya dan mengaktifkannya. Tapi saya tidak bisa melihat perbedaan antara volume itu dan yang tidak aktif.
Filesystem root juga LVM, dan itu mengaktifkannya dengan baik.
Saya melihat hal yang aneh: mengeksekusi lvchange -aay
memberitahu saya bahwa saya perlu menentukan drive mana yang ingin saya aktifkan. Itu tidak melakukannya secara otomatis juga. Jika saya menentukan lvchange -ay lv_home
- itu berfungsi.
Saya tidak dapat menemukan apa pun yang dapat bertanggung jawab atas perilaku ini.
Ditambahkan: Saya perhatikan bahwa sistem lama (yang menggunakan init) ada vgchange -aay --sysinit
di skrip startupnya. Yang baru menggunakan systemd, dan saya tidak melihat vgchange
panggilan dalam skripnya. Tapi saya juga tidak tahu harus meletakkannya di mana.
Ditambahkan 2: Mulai mencari tahu systemd. Saya menemukan di mana skrip berada dan mulai memahami bagaimana mereka dipanggil. Juga menemukan bahwa saya dapat melihat skrip yang dieksekusi dengan systemctl -al
. Ini menunjukkan kepada saya bahwa setelah memulai lvmetad
panggilan pvscan
untuk setiap perangkat blok udev dikenal. Namun pada saat itu hanya ada satu perangkat blok udev terdaftar, dan itu adalah salah satu volume lvm yang dikenali. Hard drive ada di sana juga, tetapi di bawah jalur yang berbeda dan nama yang lebih panjang. Perangkat blok yang dikenali adalah sesuatu yang mirip 8:3
, sedangkan hard drive seperti /device/something/
. Saya tidak di server lagi, jadi saya tidak bisa menulisnya dengan tepat (akan memperbaikinya nanti).
Saya pikir itu ada hubungannya dengan udev dan deteksi / pemetaan perangkat. Saya akan melanjutkan di malam hari dan akan belajar udev kemudian.
Jika semuanya gagal, saya menemukan skrip yang memanggil pvscan
dan memeriksa bahwa saya dapat memodifikasinya untuk memindai semua perangkat sepanjang waktu. Itu memperbaiki masalah, tetapi sepertinya peretasan agak jelek, jadi saya akan mencoba mencari tahu penyebab sebenarnya.
Ditambahkan 3 : OK, saya masih tidak tahu mengapa ini terjadi, tapi setidaknya saya sudah membuat solusi yang lumayan. Saya membuat layanan systemd lain yang memanggil pvscan
sekali, tepat setelah memulai lvmetad
. Panggilan lain untuk perangkat tertentu masih ada, dan saya pikir itu sebenarnya udev
yang memanggilnya (itulah satu-satunya tempat saya menemukan referensi untuk itu). Mengapa tidak menyebutnya untuk hard drive lain - Saya tidak tahu.
lvmetad
- saya belum melihat yang lain).Jawaban:
Saya melakukannya! Saya melakukannya! Saya memperbaikinya dengan benar (saya pikir).
Begini ceritanya:
Setelah beberapa waktu server ternyata rusak dan harus dihapus. Saya menyimpan disk dan membuat yang lainnya baru. Kemudian saya menginstal ulang CentOS lagi di SSD dan kemudian saya pasang HDD. LVM bekerja dengan baik, disk dikenali, konfigurasi disimpan. Tetapi masalah yang sama muncul lagi - setelah reboot, volumenya tidak aktif.
Namun kali ini saya kebetulan melihat sesuatu yang lain - bootloader meneruskan parameter berikut ke kernel:
Hmm, tunggu sebentar, mereka terlihat TERKENAL !
Permintaan google cepat, dan ini dia :
Baik sekarang. ITULAH menjelaskannya!
Jadi, resolusinya adalah (dikumpulkan dari beberapa pertanyaan google lainnya):
/etc/defaults/grub
untuk memasukkan volume tambahan dalam parameter:crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap
rd.lvm.lv=vg_home/lv_home
rhgb quiet
grub2-mkconfig -o /boot/grub2/grub.cfg
mkinitrd -f -v /boot/initramfs-3.10.0-327.18.2.el7.x86_64.img 3.10.0-327.18.2.el7.x86_64
. Catatan: nilai Anda mungkin beragam. Gunakanuname -r
untuk mendapatkan versi kernel itu. Atau baca terusmkinitrd
. (Terus terang, saya tidak tahu mengapa langkah ini diperlukan, tetapi ternyata itu - saya mencoba tanpa itu dan tidak berhasil)grub2-install /dev/sda
TA-DA! Volume aktif saat reboot. Tambahkan ke
fstab
dan nikmatilah! :)sumber
Pembaruan kecil (untuk RHEL 7 pada mesin EFI (non-BIOS) ):
Saya harus berhasil menggunakan langkah-langkah ini:
/etc/defaults/grub
untuk memasukkan volume tambahan dalam parameter:rd.lvm.lv=rhel/home
(selainrhel/root
danrhel/swap
)Konfigurasikan ulang grub dengan
( catatan: jalan lain!)
Konfigurasikan ulang initramfs dengan
grub2-install /dev/sda
(karena saya memiliki direktori kosong/usr/lib/grub/
)sumber
_netdev
bendera untukfstab
, mengaktifkanchkconfig netfs on
dan bahkan mematikanuse_lvmetad = 0
yanglvmetad
di/etc/lvm/lvm.conf
hanya dengan harapan perangkat akan kembali disurvei dan diambil ...Saya punya masalah ini juga. Dalam kasus saya itu adalah kombinasi dari iscsi, multipath dan lvm dan urutan pembuatan sesi dll. Saya memecahkan masalah dengan menambahkan panggilan
/sbin/vgchange -a y
ke/etc/rc.local
.sumber
Jadi saya mencoba pengaturan rd.lvm.lv = di / etc / default / grub dan itu tidak berhasil
Saya membutuhkan kedua volume logis pada grup volume ssd_vg agar aktif saat boot. Serta volume logis home_lv pada kubuntu-vg menjadi aktif
Apa yang berhasil adalah mengedit /etc/lvm/lvm.conf Di bagian daftar volume taruh ini di volume_list = ["ssd_vg", "kubuntu-vg / home_lv"]
hasil setelah reboot
$ sudo lvscan tidak aktif Asli '/ dev / kubuntu-vg / root' [50.00 GiB] mewarisi
sumber
Untuk bagian saya, saya punya komentar pada baris ini di /etc/lvm/lvm.conf
Karena jika aktif, hanya volume vg00 dan vg01 yang aktif saat boot.
Dokumentasi lvm.conf:
sumber