ดังนั้นฉันจึงพบปัญหาในขณะที่เขียนคำถาม อย่างที่คุณเห็นจากที่ฉันเขียนไว้ในตอนต้น มันเป็นกระบวนการที่ยาวนานมาก (ฉันทำงานเกี่ยวกับมันมาประมาณ 2 วันก่อนที่จะถึงจุดที่ต้องการขอความช่วยเหลือ)
หากคุณดูที่ส่วนท้ายสุดของ Q ฉันได้รับข้อความนี้จาก dmesg ระหว่างกระบวนการบู๊ต:
[FAILED] ไม่สามารถเมานต์ /บูต
ดู 'สถานะ systemctl boot.mount' สำหรับรายละเอียด
แน่นอนว่าฉันพยายาม สถานะ systemctl boot.mount เพื่อดูว่ามันพูดอะไร แต่มันบอกว่า boot.mount เปิดใช้งานอยู่ (สีเขียว) แม้ว่าจะโหลดและทำงานอย่างถูกต้องก็ตาม /บูต ว่างเปล่าเว้นแต่ฉันจะติดตั้งด้วยตนเอง /dev/sda2 (ซึ่งตรงกันข้ามกับที่ผมคาดไว้เลย)
ดังนั้นฉันจึงเริ่มคิดว่ามีบางอย่างผิดปกติกับบริการ ฉันปิดการใช้งาน boot.mount แม้ว่ามัน กล่าว มันทำงานอย่างถูกต้อง:
ปิดการใช้งาน systemctl -- ตอนนี้ boot.mount
ฉันพยายามเปิดใช้งานอีกครั้ง แต่มีข้อผิดพลาด:
เปิดใช้งาน systemctl -- ตอนนี้ boot.mount
ไม่สามารถเปิดใช้งานหน่วย: หน่วย /run/systemd/generator/boot.mount เป็นชั่วคราวหรือสร้างขึ้น
โอเค สมเหตุสมผลแล้ว มันถูกกระตุ้นผ่านกระบวนการบู๊ตและไม่สามารถเรียกใช้ผ่านคำสั่งของผู้ใช้ได้ ดังนั้นฉันจึงพยายามเมานต์อุปกรณ์ทั้งหมดอีกครั้งด้วย:
เมานต์ -a
และเห็นว่ามีข้อผิดพลาดใน /etc/fstab ไฟล์:
ข้อผิดพลาด: rw,relatime ไม่ใช่ระบบไฟล์ที่ถูกต้อง
(หรือสิ่งที่มีผลนั้น)
สิ่งสำคัญคือ ถ้าฉันไม่ลองติดตั้งระบบไฟล์ด้วยตนเอง ฉันจะไม่ได้รับคำติชมนั้นเลย ข้อความแสดงข้อผิดพลาดจาก เมานต์ -a หนึ่งได้รับเมื่อ แทง มีไวยากรณ์ที่ไม่เหมาะสมมีประโยชน์อย่างเหลือเชื่อ มีประโยชน์มากกว่า:
[FAILED] ไม่สามารถเมานต์ /บูต
ดู 'สถานะ systemctl boot.mount' สำหรับรายละเอียด
... แล้วเห็นหน่วย systemd "ทำงาน" สำหรับ boot.mount เมื่อไร /บูต ไม่ได้ติดตั้ง (แม้ว่าจะเป็น ทำ พาฉันไปถูกที่ในที่สุด)
ดังนั้นฉันจึงแก้ไข แทง และป้อนข้อมูลระบบไฟล์สำหรับไฟล์ /บูต พาร์ติชันที่เมานต์ไม่สำเร็จ จากนั้นฉันรันใหม่ เมานต์ -a (ซึ่งโดยหลักแล้วทำสิ่งเดียวกับ boot.mount) และได้รับการตอบรับเป็นอย่างดี
ตอนนี้ทั้งสองพาร์ติชั่นถูกติดตั้งอย่างถูกต้องหลังจากรีบูต และทุกอย่างก็เรียบร้อยดีในดินแดนแห่งพืชชนิดหนึ่งและแยมผิวส้ม
หากการดำเนินการนี้ไม่สามารถแก้ไขปัญหาใดๆ ของคุณได้ ต่อไปนี้เป็นหมายเหตุเพิ่มเติมเกี่ยวกับกระบวนการที่ฉันดำเนินการก่อนที่จะไปถึงจุดข้างต้นที่ฉันกำลังมองหาความช่วยเหลือ (อย่าลังเลที่จะหยุดอ่านหลังจากคุณพบปัญหาแล้ว):
ปัญหาเดิมที่ฉันมีเมื่อสองวันก่อนคือระบบพยายามบูตจากเมล็ดที่ไม่ได้อยู่ในระบบอีกต่อไป ดังนั้น หลังจากบูทด้วย live CD ฉันจึงลบไฟล์ /บูต เนื้อหาของโฟลเดอร์ (โดยที่ไฟล์ เริ่มต้น ไฟล์อยู่).
ฉันคิดว่าฉันจะสร้างใหม่ initramfs โดยใช้ อัปเดต initramfs -c -k ทั้งหมด จากเคอร์เนลปัจจุบันที่ฉันได้ติดตั้ง แต่จากนั้นฉันได้เรียนรู้ว่าฉันไม่สามารถสร้าง การกำหนดค่า หรือ System.map ไฟล์ที่มี ดีเอ็มดี ตามลำพัง. สิ่งนี้กลายเป็นปัญหาเล็กน้อยกว่าที่ฉันต่อรอง
ฉันพบวิธีที่ง่ายที่สุดในการสร้างใหม่หรือรับไฟล์เหล่านี้ทั้งหมดคือ:
- ลบเนื้อหาทั้งหมดของ
/บูต,
- ถอนการติดตั้งใด ๆ
ลินุกซ์อิมเมจ, ลินุกซ์ส่วนหัว และ ลินุกซ์โมดูล ไฟล์ที่ฉันไม่ได้ตั้งใจจะใช้
- ลบไดเร็กทอรีที่เหลือทั้งหมดใน
/usr/lib/โมดูลแล้ว
- ติดตั้งใหม่
ลินุกซ์อิมเมจ, ลินุกซ์โมดูล และ ลินุกซ์-ส่วนหัว ไฟล์ที่ฉันตั้งใจจะใช้ (สองเวอร์ชันทั่วไปล่าสุดล่าสุด)
หมายเหตุ: ติดตั้งไฟล์ทั้ง 3 ประเภทนี้อีกครั้ง ทั้งหมดในเวลาเดียวกัน เป็นวิธีที่ฉันได้รับ /boot/System.map และ /บูต/กำหนดค่า ไฟล์กลับ - ก่อนที่จะติดตั้งใหม่เท่านั้น ลินุกซ์อิมเมจ ไฟล์ไม่ได้ทำ เป็นไปได้ว่ารวมอยู่ด้วย โมดูล (โมดูลจะเข้าท่า) หรือ ส่วนหัว แพ็คเกจ แต่นี่คือสิ่งที่ได้ผลสำหรับฉัน
- จากนั้นฉันก็วิ่ง
ปรับปรุงด้วง หลังจากติดตั้งไฟล์เหล่านั้นใหม่และยืนยัน /บูต ถูกบรรจุอย่างถูกต้อง
- ฉันยังวิ่ง
ติดตั้ง bootctl และ /etc/kernel/postinst.d/zz-udpate-systemd-bootดังนั้นฉันจะมี systemd-บูต ติดตั้งเป็นทางเลือก
เมื่อถึงจุดหนึ่งหลังจากรีบูต ฉันต้องกำหนดค่าใหม่ system.target ถึง หลาย user.target แทน graphical.targetอาจเป็นเพราะมี โครตแก้ไขด้วยการเมานต์เหล่านั้นทั้งหมดในซีดีสดแบบกราฟิกเพื่อเรียกใช้ ซ่อมบูต โปรแกรมเมื่อสองสามวันก่อนซึ่งต้องใช้กราฟิก (และฉันเชื่อว่า /dev/pts /tmp และ /วิ่ง จำเป็นต้องได้รับ จอแสดงผล :0.0 ไปทำงาน):
systemctl ตั้งค่าเริ่มต้นหลาย user.target
ตกลงเกี่ยวกับเรื่องนี้ หวังว่านี่จะช่วยใครซักคน