vmlinuz หายไปจากระบบของฉันจะแก้ไขได้อย่างไร


0

Linux ทั้งหมดควรมาพร้อมกับ vmlinuz ภายใต้ " / "และ" /boot/ "เช่นกันอย่างไรก็ตามระบบของฉันไม่มี:

% ls -l /vmlinuz* /initrd* /boot/vmlinuz*
ls: cannot access '/vmlinuz*': No such file or directory
ls: cannot access '/initrd*': No such file or directory
ls: cannot access '/boot/vmlinuz*': No such file or directory

ฉันจะได้รับทั้งสามกลับมาได้อย่างไร

ฉันเหนื่อย,

apt-get install --reinstall linux-image-generic linux-headers-generic
update-initramfs -u

ซึ่งควรแก้ไขปัญหาตามบทความที่ฉันอ่านเนื่องจากแพ็คเกจจริงจะได้รับการติดตั้งใหม่ด้วย

% apt-get install --reinstall linux-image-generic linux-headers-generic 
Preparing to unpack .../linux-headers-generic_4.15.0.20.23_amd64.deb ...
Unpacking linux-headers-generic (4.15.0.20.23) over (4.15.0.20.23) ...
Preparing to unpack .../linux-image-generic_4.15.0.20.23_amd64.deb ...
Unpacking linux-image-generic (4.15.0.20.23) over (4.15.0.20.23) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for install-info (6.5.0.dfsg.1-2) ...
Processing triggers for systemd (237-3ubuntu10) ...
Processing triggers for man-db (2.8.3-2) ...
Setting up linux-image-generic (4.15.0.20.23) ...
Setting up linux-headers-generic (4.15.0.20.23) ...
Processing triggers for ureadahead (0.100.0-20) ...
Processing triggers for systemd (237-3ubuntu10) ...

แต่ฉันยังคงขาดสามไฟล์ด้านบนหลังจากนั้น


1
หลังจากข้อผิดพลาดที่ลบไฟล์เหล่านั้นหรือระบบทำงานโดยไม่เคยมีไฟล์เหล่านั้นหรือไม่? สำหรับกรณีที่สองฉันสงสัยว่าระบบจะทำงานภายในคอนเทนเนอร์ (เช่น VPS) แล้วไม่ต้องการมัน คุณบอกได้ไหมว่ามันคือกรณีใด
A.B

โอ้เป็นเรื่องราวที่ยาวนาน @ A.B แต่เมื่อคุณถามไม่นี่เป็นระบบใหม่ที่ไม่เคยบู๊ต ฉันทำได้โดยการคัดลอกระบบ Ubuntu Live ไปยัง HD ของฉันเอง ทำไมฉันถึงทำอย่างนั้นเป็นอีกเรื่องยาว แต่โดยสังเขปทำสำเนาเช่นนั้นทั้งคู่ /vmlinuz และ /initrd.img กำลังชี้ไปที่ไฟล์ที่ไม่มีอยู่ โดยสรุปแล้วฉันต้องได้ทั้งสามกลับมา ขอบคุณ.
xpt

คำตอบ:


1
apt-get install --reinstall linux-image-generic

จะติดตั้งแพ็คเกจว่างเปล่าซึ่งไม่มีรหัสเคอร์เนลจริง แต่จะมีให้สำหรับการขึ้นต่อกันที่ดึง

ควรติดตั้งอะไรบ้างเพื่อให้หาย /boot files เป็นแพ็กเกจที่ชี้ขณะนี้ขึ้นอยู่กับการพึ่งพา ลินุกซ์ภาพทั่วไป . วันนี้นั่นคือ ลินุกซ์ภาพ 4.15.0-20 ทั่วไป . ดังนั้น:

apt-get install --reinstall linux-image-4.15.0-20-generic

ควรทำให้ไฟล์ที่หายไปปรากฏขึ้น จริงๆแล้วมันมีเพียงไฟล์ที่ต้องการน้อยที่สุด: /boot/vmlinuz-4.15.0-20-generic. ยังติดตั้งการพึ่งพาของมันอีกครั้ง ลินุกซ์โมดูล 4.15.0-20 ทั่วไป จะกู้คืนไฟล์ที่หายไปสองสามไฟล์ /boot (ให้เป็นไปตาม รายการ ):

/boot/System.map-4.15.0-20-generic
/boot/abi-4.15.0-20-generic
/boot/config-4.15.0-20-generic
/boot/retpoline-4.15.0-20-generic

โปรดอธิบายอีกครั้งว่าทำไม linux-image-generic_4.15.0.20.23_amd64.deb ไม่ตกลงอีกครั้งโปรดลบความคิดเห็น I.e. ใน OP ของฉันมีเส้นตรง unpack .../linux-image-generic_4.15.0.20.23_amd64.deb อย่างไรก็ตามมันไม่ทำงาน
xpt

1
ตามหน้าที่เชื่อมโยงแล้วขนาดของแพ็กเกจ linux-image-generic ตามลิงค์มี สอง ไฟล์: /usr/share/doc/linux-image-generic/changelog.gz และ /usr/share/doc/linux-image-generic/copyright . ในทางกลับกันแพคเกจอื่น ๆ ในขณะที่มีเพียง 3 ไฟล์จะมีไฟล์นี้: /boot/vmlinuz-4.15.0-20-generic: เคอร์เนล นี่เพียงพอที่จะทริกเกอร์การสร้างไฟล์เริ่มต้นที่เกี่ยวข้อง update-initramfs -u . เหตุผลที่น่าจะเป็น "สูญหาย" เมื่อคัดลอกอิมเมจคือ / boot เป็นพาร์ติชันแยกต่างหาก
A.B

มีการพึ่งพาอื่น ๆ (ย่อย) ซึ่งมีโมดูลเคอร์เนลทั้งหมด: linux-modules-4.15.0-20-generic packages.ubuntu.com/bionic/amd64/... . แต่สิ่งนี้ถูกคัดลอกมาอย่างเหมาะสมจากอิมเมจดังนั้นจึงไม่จำเป็นต้องติดตั้งใหม่ อย่างไรก็ตามมีไฟล์ / boot บางไฟล์อยู่ในนั้น (เช่น /boot/System.map*) ดังนั้นฉันจะเพิ่มเข้าไปในคำตอบ
A.B

0

apt-get install --reinstall เห็นได้ชัดว่าไม่ได้ช่วยฉันจึงสิ้นสุดการลบพวกเขาทั้งหมดก่อนแล้วติดตั้งอีกครั้ง:

apt-get --purge remove linux-headers-4.15.0-20 linux-headers-4.15.0-20-generic linux-image-4.15.0-20-generic
apt-get install linux-image-generic linux-headers-generic 

% ls -l /vmlinuz* /initrd* /boot/vmlinuz* /boot/initrd*
-rw-r--r-- 1 root root 57592934 Apr 28 16:55  /boot/initrd.img-4.15.0-20-generic
-rw------- 1 root root  8249080 Apr 24 04:42  /boot/vmlinuz-4.15.0-20-generic
lrwxrwxrwx 1 root root       33 Apr 28 16:54  /initrd.img -> boot/initrd.img-4.15.0-20-generic
lrwxrwxrwx 1 root root       33 Apr 28 16:54  /initrd.img.old -> boot/initrd.img-4.15.0-20-generic
lrwxrwxrwx 1 root root       30 Apr 28 16:54  /vmlinuz -> boot/vmlinuz-4.15.0-20-generic
lrwxrwxrwx 1 root root       30 Apr 28 16:54  /vmlinuz.old -> boot/vmlinuz-4.15.0-20-generic

อาจจะเป็นงานหนักเกินไป แต่ด้วย apt-get install --reinstall ไม่ทำงานฉันไม่สามารถคิดความคิดที่ดีกว่า

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