ฉันเห็นข้อผิดพลาดเดียวกันในวันนี้บนแล็ปท็อปที่ใช้ 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
)