Ubuntu จะไม่บูตเนื่องจาก lvmetad


27

ฉันได้ทำตามบทช่วยสอนนี้เพื่อติดตั้ง Ubuntu 15.10:

https://thesimplecomputer.info/full-disk-encryption-with-ubuntu

หลังจากรีสตาร์ทคอมพิวเตอร์ฉันไปที่เมนูด้วงและเลือก Ubuntu หลังจากนั้นฉันก็พบข้อผิดพลาดนี้:

/run/lvm/lvmetad.socket: connect failed: No such file or directory
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

ข้อความเหล่านี้เพิ่มขึ้นบนหน้าจอสีดำทุกวินาที หลังจากผ่านไปครู่หนึ่งฉันก็สามารถเข้าถึงinitramfsคอนโซลเถ้าได้

ผมทำอะไรผิดหรือเปล่า?


คอนโซลเถ้าหรือคอนโซลทุบตี? typo?
Thufir

คำตอบ:


12

ฉันเห็นข้อผิดพลาดเดียวกันในวันนี้บนแล็ปท็อปที่ใช้ Ubuntu 15.10 ซึ่งฉันอัปเดตอยู่เสมอ แต่ไม่ได้รีบูตเครื่องเป็นเวลาหนึ่งเดือนจนกระทั่งฉันต้องการทดสอบเคอร์เนลปัจจุบัน (กล่าวคืออาจมีการเปลี่ยนแปลงล่าสุด)

อย่างไรก็ตามฉันพบว่าในกรณีของฉันสาเหตุที่แท้จริงคือพาร์ทิชัน swap "หายไป" เนื่องจากความผิดพลาดในการตั้งค่าเมื่อทำตามบทช่วยสอนด้านบน หากเป็นกรณีนี้และ / หรือคุณใช้งานจริงlvmคุณอาจข้ามขั้นตอนที่ 2 ด้านล่าง แน่นอนคุณอาจเห็นข้อความแสดงข้อผิดพลาดด้านบนในกรณีที่พาร์ติชันระบบของคุณ (หรือข้อมูลรอง) เสียหายหรือไม่พบ (ดูขั้นตอนที่ 3)

ขั้นตอนที่ 1: เมานต์ระบบของคุณให้บูตพาร์ติชันหลังจากทำตามบทช่วยสอน

สมมติว่า (ext2) พาร์ทิชันบูตของคุณคือ / dev / sdX1 (เข้ารหัส) พาร์ทิชัน swap ของคุณคือ / dev / sdX2 (เข้ารหัส) พาร์ทิชันข้อมูลของคุณ / dev / sdX3 และคุณได้ถอดรหัสประสบความสำเร็จหลังใช้cryptsetup luksOpen /dev/sdX3 dataตามด้วยการติดตั้ง mkdir /tmp/data; mount /dev/mapper/data /tmp/dataมัน

ความสนใจกับม้าในกวดวิชาผูกและให้แน่ใจว่าจะ mount / dev / sdX1 เพื่อให้คุณสามารถเข้าถึงได้จากไดเรกทอรี / พาร์ทิชันบูตระบบของคุณ (นี้เป็นสิ่งสำคัญที่เราจะต้องดำเนินการupdate-initramfs)

ในต่อไปนี้เราจะสมมติว่าคุณได้ดำเนินการสำเร็จchroot /tmp/data/@ubuntu1510(หรือสิ่งที่พาร์ทิชันระบบติดตั้งของคุณเรียกว่า)

ขั้นตอนที่ 2: กำจัดข้อความแสดงข้อผิดพลาดข้างต้น

ฉันใช้ btrfs (คุณอาจเดาได้จากชื่อ subvolume ที่กล่าวถึง) ดังนั้น lvmetad จึงสามารถปิดการใช้งานได้อย่างง่ายดายดังนี้โดยไม่สูญเสียการทำงาน:

  • แก้ไข /etc/lvm/lvm.conf และเปลี่ยนuse_lvmetad=1เป็นuse_lvmetad=0
  • ปฏิบัติ update-initramfs -k $(uname -r) -u ; sync

ตอนนี้คุณสามารถรีบูตและข้อความแสดงข้อผิดพลาดควรหายไป อย่างไรก็ตามในกรณีของฉันข้อความแสดงข้อผิดพลาดถัดไป [1] ชี้ให้ฉันเห็นปัญหาพื้นฐานที่กล่าวถึงข้างต้นดังนั้นในขณะที่เรากำลังอยู่ที่ ...

ขั้นตอนที่ 3: ตรวจสอบให้แน่ใจว่า / etc / crypttab ชี้พาร์ติชั่นที่ถูกต้องและไม่เสียหาย

ก่อนอื่นให้เรียกใช้sfdisk --list /dev/sdXและตรวจสอบว่าพาร์ทิชัน swap ที่เข้ารหัสของคุณ (ในกรณีของฉัน / dev / sdX2) จริง ๆ แล้วไม่แสดงเป็นพาร์ติชัน swap (ปกติ) ถ้าเป็นเช่นนั้น (เช่นในกรณีของฉัน) นี่หมายถึงการบูทเช่นการใช้ดิสก์กู้ชีพอาจใช้ประโยชน์จาก swap พาร์ติชันที่มีอยู่ดังนั้นจึงเขียนทับข้อมูลเมตาของ cryptsetup ที่เกี่ยวข้อง (keyphrase และ UUID)

ถัดไปให้ดูที่ / dev / disk / by-uuid และเปรียบเทียบ UUID ที่เกี่ยวข้องของพาร์ติชันที่เข้ารหัสของคุณกับพาร์ติชันที่มีอยู่ใน / etc / crypttab ฉันเดาว่า ณ จุดนี้: ในกรณีของคุณมีความไม่ตรงกัน

หากพาร์ทิชัน swap ที่เข้ารหัสโดยเฉพาะไม่มีอยู่ที่ด้านล่าง / dev / disk / by-uuid นั่นเป็นเพราะระบบช่วยเหลือของคุณใช้อยู่ในปัจจุบัน ในกรณีดังกล่าวให้ทำดังนี้

  • ให้แน่ใจว่าจะหยุดใช้พาร์ทิชัน: swapoff -a
  • ฟอร์แมตใหม่: mkfs.ext2 /dev/sdX2(นี่เป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่งเมื่อใช้ GPT พาร์ติชัน [2] เนื่องจากเป็นการยกเลิกข้อผิดพลาดที่ฉันกล่าวถึงก่อนหน้านี้สาเหตุที่เป็นไปได้ของการแบ่งพาร์ติชันแสดงเป็นชนิด "swap" ในรายการ sfdisk คือmkswap /dev/sdX2เมื่อตั้งค่าพาร์ติชันในตอนเริ่มต้น)
  • ปฏิบัติตามบทช่วยสอนเพื่อเข้ารหัสพาร์ติชันและตั้งค่าข้อความรหัสผ่าน หลังจากนั้นให้เปิดมันโดยใช้ cryptsetup และทำการฟอร์แมตพาร์ติชั่นที่ถอดรหัสใหม่ตอนนี้ (ใช้บางสิ่งที่คล้ายกันmkswap /dev/mapper/swap)
  • ตรวจสอบให้แน่ใจว่าsfdisk --list /dev/sdXจะไม่ระบุ swap swap เช่นนี้ (ในกรณีนั้นให้ทำซ้ำขั้นตอนสุดท้าย)

ตอนนี้ตรวจสอบอีกครั้งว่า UUIDs ที่แสดงรายการอยู่ใน / etc / crypttab นั้นอยู่ในบรรทัดที่คุณเห็นด้านล่าง / dev / disk / by-uuid สำหรับพาร์ติชั่นที่เข้ารหัสของคุณ

อีกครั้งเพื่อทำการเปลี่ยนแปลงอย่างถาวรคุณต้องดำเนินการupdate-initramfsตามที่แสดงด้านบน

หากคุณพึงพอใจตรวจสอบให้แน่ใจว่าทุกอย่างถูกเขียนลงดิสก์และรีบูตระบบ (ไม่จำเป็นต้องถอนการติดตั้งทุกอย่างด้วยตนเอง) หลังจากนั้นปัญหาของคุณควรหายไป

[1] บางทีฉันไม่ได้สนใจครั้งแรกหรือข้อความแสดงข้อผิดพลาดครั้งแรก "หลอกลวง" ข้อความที่สอง; เช่นหลังจากรีบูตเครื่อง (ด้วยuse_lvmetad=0) ฉันได้รับการนำเสนอด้วย "การอ่านฟิสิคัลวอลุ่มทั้งหมดอาจใช้เวลาสักครู่ ... " (ซ้ำหลายครั้ง) ตามด้วย " ALERT! / dev / disk / by-uuid / .. ไม่มีตัวตน ". (ควรสังเกตว่าupdate-initramfsยังบ่นเกี่ยวกับพาร์ทิชันที่ขาดหายไป)

[2] เนื่องจากประเภทของพวกเขาถูกหักออกจากการวิเคราะห์เนื้อหาและไม่ได้ระบุในที่สุดโดยการตั้งค่าสถานะ / ไบต์ (นั่นคือสาเหตุที่ไม่มีวิธีง่ายๆเช่นเปลี่ยนประเภทระบบไฟล์ GPT โดยใช้[g]parted)


2

Ubuntu 18.04.1 LTS ที่นี่ มันทำงานมาสองสามเดือนโดยไม่ต้องใส่ข้อมูล แต่เมื่อฉันกลับมาฉันพบว่าแป้นพิมพ์ไม่รู้จัก เมื่อฉันรีบูตฉันได้รับข้อความ 'ไม่สามารถเชื่อมต่อกับ lvmetad' และอีกมากเกี่ยวกับการไม่สามารถรับ "UEFI db list"

ฉันติดตั้งโดยไม่มีการเข้ารหัสดิสก์

ข้อความ UEFI น่าเป็นห่วงเพราะนี่เป็นการติดตั้งครั้งแรกของฉันบนคอมพิวเตอร์ UEFI ดังนั้นฉันจึงไม่มีประสบการณ์และฉันก็ยังไม่รู้เกี่ยวกับประโยชน์ที่ได้รับตรงไปตรงมา ปัญหาของฉันถูกรวมเข้าด้วยความจริงที่ว่าฉันได้ใช้ 'lvm' กับสิ่งที่จะเป็น '/' ของฉัน, ราก, ปริมาณ (อันที่จริงแล้วฉันลืมไปแล้วว่าฉันทำสิ่งนั้นได้สำเร็จตั้งแต่แรก! เฮ้ฉันแก่แล้ว)

อย่างไรก็ตามเมื่อเครื่องไม่รีบูตฉันค้นหาวิธีแก้ปัญหาและพบว่าไม่มีอะไรแน่นอน แต่สังเกตว่า a) พาร์ติชัน EFI ของฉันมีขนาดเล็กกว่า 500MB ที่แนะนำในไซต์เดียวและ b) พาร์ติชัน / boot / partition ที่ฉันจัดเรียงแยกต่างหาก สำหรับอาจไม่เกี่ยวข้องและไม่ได้ใช้ ฉันคิดว่าเป็นไปได้ว่าการอัปเกรดแบบไม่ต้องใส่ข้อมูลอาจทำให้บางสิ่งบางอย่างอาจเติมเต็มพื้นที่ที่กำหนด

ฉันตัดสินใจที่จะติดตั้งใหม่ - ซึ่งใช้งานได้และไม่วางโครงสร้างไดเรกทอรี / home / ของฉัน ฉันไม่ได้ตรวจสอบ / etc / แต่ได้ทำสำเนาทั้งคู่ไว้ล่วงหน้า [1] ดังนั้นฉันสามารถตรวจสอบได้ในภายหลัง / etc / เล็กมาก

ฉันยังลบลบและรวมพาร์ติชันสำหรับ EFI และ / boot / เป็นพาร์ติชัน EFI เดียวที่มีขนาดใหญ่กว่า (> 750MB)

มันเริ่มต้นใหม่ในขณะนี้ แต่ข้อความแสดงข้อผิดพลาดกะพริบเร็วเกินไปที่จะอ่านและฉันไม่ได้เสนอ 'เมนู' ของอิมเมจสำหรับบูตเพื่อบูต แต่จะบู๊ตโดยตรงใน Ubuntu แทน ยังมีงานที่ต้องทำอีกมากสำหรับด้วงที่ฉันคิดไว้ แต่อย่างน้อยไฟล์ของฉันก็กลับมา

[1] ฉันบูทติดตั้ง Ubuntu จากแท่ง USB และเลือกที่จะ "ลอง" Ubuntu ซึ่งอนุญาตให้ฉันทำสำเนา ฯลฯ และที่บ้านก่อนเลือก "ติดตั้ง" จากเดสก์ท็อป


กับฉันได้รับmount /dev/mapper/data /tmp/data unknown filesystem type LVM2_member
Francesco Boi

2

Failed to connect to lvmetadข้อผิดพลาดสามารถเกิดขึ้นได้เนื่องจากดิสก์เต็ม 100% ในการแก้ไขปัญหานี้ให้บูตจากไดรฟ์หัวแม่มือ USB ติดตั้งดิสก์เต็มลบไฟล์ที่ไม่ต้องการและรีบูต ฉันติดตั้งระบบบู๊ตใหม่ - ฉันไม่ทราบว่าจำเป็นหรือไม่

เหล่านี้เป็นคำสั่งที่แก้ไขปัญหาให้ฉันเรียกใช้จาก terminal หลังจากบูตจากไดรฟ์ USB ฉันมีหุ้น Ubuntu 18.04 พร้อมการเข้ารหัสเต็มไดรฟ์ YMMV

  • ติดตั้งไดรฟ์:
sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
sudo vgscan --mknodes
sudo vgchange -ay
sudo mount /dev/mapper/ubuntu--vg-root /mnt
  • ลบไฟล์ที่ไม่จำเป็น ( cd /mnt/home/your_username... rm ...)
  • (อาจไม่จำเป็น) ติดตั้งระบบบู๊ตใหม่:
cd /mnt/
sudo mount /dev/sda1 boot
for d in dev sys proc run; do sudo mount --bind /$d $d; done
sudo vi etc/crypttab # make sure first line uses "sda5_crypt"
sudo chroot .
update-grub
grub-install /dev/sda
update-initramfs -u -k all
exit
sudo umount dev sys proc run boot
  • ยกเลิกการต่อเชื่อม:
cd /
sudo umount /mnt
sudo vgchange -an
sudo cryptsetup close sda5_crypt
  • รีบูต:
sudo reboot

0

ไม่จำเป็นต้องทำการบูทระบบของคุณจาก USB หรืออย่างอื่น ฉันมีปัญหาเดียวกันและเหตุผล - เพราะดิสก์เต็ม 100% ทางออกต่อไปช่วยฉัน

1) รีสตาร์ทระบบของคุณ สำหรับ BIOS ให้กดปุ่ม Shift ค้างไว้อย่างรวดเร็วซึ่งจะทำให้เมนู GNU GRUB ปรากฏขึ้น

2) หลังจากกด 'e' เพื่อแก้ไขการตั้งค่า Ubuntu ในปัญหานี้คุณสามารถค้นหาหน้าจอ ค้นหาสตริงที่เริ่มต้นเช่น 'linux *' เช่นนี้:

linux     /boot/vmlinuz-4-4.0-22-generic root=UUID=43ad24d3-e\
c5b-44ee-a099-a88eb9520989 ro  quiet splash $vt_handoff

ลบ:

ro  quiet splash $vt_handoff

และเพิ่ม:

init=/bin/bash

เมื่อพร้อมแล้วกด CTRL + x หรือ F10 เพื่อบู๊ต

3) ติดตั้งพาร์ติชั่นรูทแบบอ่านอย่างเดียว หากต้องการเมาท์มันอ่าน / เขียนให้ป้อนคำสั่ง

mount -o remount,rw /

4) ค้นหาสิ่งที่ผิดปกติ:

df -hT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.