Score:0

dpkg: แพคเกจการประมวลผลข้อผิดพลาด linux-image-4.15.0-175-generic (/boot/grub/menu.lst ไม่พบ)

ธง eg

ฉันมีปัญหานี้บนเซิร์ฟเวอร์ Ubuntu 18.04 อาจเป็นเพราะ /boot/grub/menu.lst ไม่มี:

root@myserver:~# apt ติดตั้ง -f
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ...
แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นอีกต่อไป:
  liblua5.1-0 libyajl2
ใช้ 'apt autoremove' เพื่อลบออก
0 อัพเกรด, 0 ติดตั้งใหม่, 0 ลบและ 0 ไม่อัพเกรด
1 ไม่ได้ติดตั้งหรือถอดออกอย่างสมบูรณ์
หลังจากการดำเนินการนี้ จะใช้พื้นที่ดิสก์เพิ่มเติม 0 B
การตั้งค่า linux-image-4.15.0-175-generic (4.15.0-175.184) ...
ทริกเกอร์การประมวลผลสำหรับ linux-image-4.15.0-175-generic (4.15.0-175.184) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: กำลังสร้าง /boot/initrd.img-4.15.0-175-generic
W: การตั้งค่าการกำหนดค่าเครื่องมือ initramfs RESUME=/dev/mapper/vg-lv_swap
W: แต่ไม่มีอุปกรณ์แลกเปลี่ยนที่ตรงกัน
I: initramfs จะพยายามดำเนินการต่อจาก /dev/vda2
ฉัน: (UUID=4c30643f-055d-4ad7-babc-b2a6b8ac3138)
ฉัน: ตั้งค่าตัวแปร RESUME เพื่อแทนที่สิ่งนี้
/etc/kernel/postinst.d/x-grub-legacy-ec2:
ค้นหาไดเร็กทอรีการติดตั้ง GRUB ... พบ: /boot/grub
กำลังค้นหาไฟล์เริ่มต้น ... พบ: /boot/grub/default
กำลังทดสอบไฟล์ GRUB menu.lst ที่มีอยู่ ... 

ไม่พบไฟล์ /boot/grub/menu.lst คุณต้องการยีน /boot/grub/menu.lst หรือไม่
คะแนนสำหรับคุณ? (y/N) /usr/sbin/update-grub-legacy-ec2: บรรทัด 1101: อ่าน: อ่าน ข้อผิดพลาด
หรือ: 0: ตัวอธิบายไฟล์ไม่ถูกต้อง
ส่วนเรียกใช้: /etc/kernel/postinst.d/x-grub-legacy-ec2 ออกด้วยรหัสส่งคืน 1
dpkg: แพคเกจการประมวลผลข้อผิดพลาด linux-image-4.15.0-175-generic (--configure):
 ติดตั้ง linux-image-4.15.0-175-generic package post-installing script subpr
ocess ส่งคืนสถานะการออกจากข้อผิดพลาด 1
พบข้อผิดพลาดขณะประมวลผล:
 linux-image-4.15.0-175-generic
E: กระบวนการย่อย /usr/bin/dpkg ส่งคืนรหัสข้อผิดพลาด (1)
root@myserver:~# ค้นหาเมนู.lst
/boot/grub.bak/menu.lst_backup_by_grub2_prerm
/boot/grub.bak/menu.lst~
/var/lib/ucf/cache/:run:grub:menu.lst
root@myserver:~# cat /var/lib/ucf/cache/:run:grub:menu.lst
## ## สิ้นสุดตัวเลือกเริ่มต้น ##

ชื่อเรื่อง Ubuntu 18.04.6 LTS, เคอร์เนล 4.15.0-173-generic
ราก (hd0)
เคอร์เนล /vmlinuz-4.15.0-173-root ทั่วไป=/dev/mapper/vg-lv_root ro console=hvc0 
initrd /initrd.img-4.15.0-173-ทั่วไป

ชื่อ Ubuntu 18.04.6 LTS, เคอร์เนล 4.15.0-173-generic (โหมดการกู้คืน)
ราก (hd0)
เคอร์เนล /vmlinuz-4.15.0-173-root ทั่วไป=/dev/mapper/vg-lv_root ro เดียว
initrd /initrd.img-4.15.0-173-ทั่วไป

### สิ้นสุดรายการเมล็ดอัตโนมัติของ DEBIAN
รูท@myserver:~# 

และ:

root@myserver:~# df -h
ขนาดระบบไฟล์ที่ใช้ Avail Use% Mounted on
อูเดฟ 461M 0 461M 0% /เดฟ
tmpfs 99M 776K 98M 1% /รอบ
/dev/vda1 23G 5.3G 17G 25% /
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /รัน/ล็อค
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/vdb1 147G 52G 88G 38% /var/www/html/วิดีโอ
tmpfs 99M 0 99M 0% /รัน/ผู้ใช้/0
root@myserver:~# uname -a
Linux myserver.com 4.15.0-173-generic #182-Ubuntu SMP วันศุกร์ที่ 18 มีนาคม 15:53:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

ความคิดใด ๆ ขอขอบคุณ

Nikita Kipriyanov avatar
za flag
`/boot` อยู่ในระบบไฟล์อื่นหรือไม่ และมันติดตั้งอยู่หรือไม่ นอกจากนี้ นี่เป็นเครื่องจริง/เครื่องเสมือน หรืออาจเป็นคอนเทนเนอร์
Francesco Galgani avatar
eg flag
เพื่อเป็นข้อมูลเพิ่มเติม ฉันย้ายเซิร์ฟเวอร์นี้จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งและใช้ `grub-repair' เพื่อกู้คืน Grub มันบูทอย่างถูกต้อง แต่ `menu.lst` หายไป
Francesco Galgani avatar
eg flag
@NikitaKipriyanov ไม่ `/boot` อยู่ในระบบไฟล์เดียวกัน เป็นเครื่องเสมือนใน VPS
Francesco Galgani avatar
eg flag
ฉันเพิ่งอัปเดตคำถามโดยเพิ่มผลลัพธ์ของ `df -f` และ `uname -a`
Nikita Kipriyanov avatar
za flag
ขณะนี้มันบูตผ่าน grub (ดั้งเดิม) หรือ grub2 หรือไม่
Francesco Galgani avatar
eg flag
ผลลัพธ์ของ `grub-install -V` คือ `grub-install (GRUB) 2.02-2ubuntu8.23`
Nikita Kipriyanov avatar
za flag
ดังนั้นคุณจึงใช้ grub2 แต่ระบบพยายามอัปเดต grub legacy นี่คือสาเหตุ ตรวจสอบว่าแพ็คเกจใดเป็นเจ้าของ `/etc/kernel/postinst.d/x-grub-legacy-ec2` และลบออก ลองติดตั้ง grub2 ใหม่อีกครั้ง ฉันหมายความว่า ก่อนอื่นให้สำรองข้อมูลและเตรียมกลยุทธ์การกู้คืน
Francesco Galgani avatar
eg flag
@NikitaKipriyanov ขอบคุณสำหรับคำแนะนำของคุณ แต่ฉันแก้ไขด้วยวิธีอื่นตามที่ฉันรายงานในคำตอบของฉัน
Score:0
ธง eg

ฉันแก้ไขด้วยวิธีต่อไปนี้

ประการแรก ฉันได้รับ UUID ของพาร์ติชัน:

#blkid
/dev/vda1: UUID="1c698c6b-ace0-4021-8cf9-4c0ee7d5364e" TYPE="ext4" PARTUUID="55d1a726-01"
/dev/vda2: LABEL="swap" UUID="4c30643f-055d-4ad7-babc-b2a6b8ac3138" TYPE="swap" PARTUUID="55d1a726-02"
/dev/vdb1: LABEL="วิดีโอ" UUID="60b104ef-36ea-440f-806d-e9f71cff8732" TYPE="ext4" PARTUUID="c075fe69-01"
/dev/loop0: TYPE="สควอช"
/dev/loop1: TYPE="สควอช"
/dev/loop2: TYPE="สควอช"
/dev/loop4: TYPE="สควอช"

และได้ทำการตรวจสอบ /บูต ไดเรกทอรี:

# ls /บูต
config-4.15.0-173-ทั่วไป initrd.img-4.15.0-173-ทั่วไป vmlinuz-4.15.0-173-ทั่วไป
config-4.15.0-175-ทั่วไป initrd.img-4.15.0-175-ทั่วไป vmlinuz-4.15.0-175-ทั่วไป
grub System.map-4.15.0-173-generic
grub.bak System.map-4.15.0-175-generic

ฉันใช้ข้อมูลนั้นเพื่อสร้างใหม่ด้วยตนเอง เมนู.lst (คัดลอกรหัสข้อคิดเห็นเริ่มต้นจากเครื่องอื่น):

# menu.lst - ดู: grub(8), ข้อมูล grub, update-grub(8)
# ติดตั้งด้วง (8), ด้วงฟล็อปปี้ดิสก์ (8),
# grub-md5-crypt, /usr/share/doc/grub
# และ /usr/share/doc/grub-legacy-doc/

## หมายเลขเริ่มต้น
# ตั้งค่ารายการเริ่มต้นเป็นหมายเลขรายการ NUM เลขเริ่มต้นจาก 0 และ
# รายการหมายเลข 0 เป็นค่าเริ่มต้นหากไม่ได้ใช้คำสั่ง
#
# คุณสามารถระบุ 'บันทึก' แทนตัวเลข ในกรณีนี้ รายการเริ่มต้น
# เป็นรายการที่บันทึกด้วยคำสั่ง 'savedefault'
# คำเตือน: หากคุณใช้ dmraid อย่าใช้ 'savedefault' หรือของคุณ
# อาร์เรย์จะยกเลิกการซิงค์และจะไม่อนุญาตให้คุณบูตระบบ
ค่าเริ่มต้น 0

## หมดเวลาวินาที
# ตั้งค่าการหมดเวลาในวินาทีวินาทีก่อนที่จะบูตรายการเริ่มต้นโดยอัตโนมัติ
# (โดยปกติจะเป็นรายการแรกที่กำหนดไว้)
# บน ec2 ที่ไม่มีการเข้าถึงคอนโซล ไม่มีเหตุผลสำหรับการหมดเวลา ตั้งเป็น 0
หมดเวลา 0

## เมนูที่ซ่อนอยู่
# ซ่อนเมนูตามค่าเริ่มต้น (กด ESC เพื่อดูเมนู)
เมนูที่ซ่อนอยู่

#สีสวย
#สี ฟ้า/น้ำเงิน ขาว/น้ำเงิน

## รหัสผ่าน ['--md5'] รหัสผ่าน wd
# หากใช้ในส่วนแรกของไฟล์เมนู ให้ปิดการแก้ไขแบบโต้ตอบทั้งหมด
# การควบคุม (ตัวแก้ไขรายการเมนูและบรรทัดคำสั่ง) และรายการที่ป้องกันโดย
#สั่งล็อค
# เช่น. รหัสผ่านลับสุดยอด
# รหัสผ่าน --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
#รหัสผ่านลับสุดยอด

#
# ตัวอย่าง
#
# ชื่อ Windows 95/98/NT/2000
# ราก (hd0,0)
#แต่งหน้า
#โหลดโซ่+1
#
# ชื่อลินุกซ์
# ราก (hd0,1)
# เคอร์เนล /vmlinuz root=/dev/hda2 ro
#

#
# ใส่ stanzas บูตแบบคงที่ก่อนและ / หรือหลังรายการเคอร์เนลอัตโนมัติ

### เริ่มรายการเมล็ดอัตโนมัติ
## บรรทัดระหว่างเครื่องหมาย AUTOMAGIC KERNELS LIST จะได้รับการแก้ไข
## โดยสคริปต์ debian update-grub ยกเว้นตัวเลือกเริ่มต้นด้านล่าง

## อย่ายกเลิกการแสดงความคิดเห็น เพียงแก้ไขตามความต้องการของคุณ

## ## เริ่มต้นตัวเลือกเริ่มต้น ##
## ตัวเลือกเคอร์เนลเริ่มต้น
## ตัวเลือกเคอร์เนลเริ่มต้นสำหรับตัวเลือกการบูตอัตโนมัติ
## หากคุณต้องการตัวเลือกพิเศษสำหรับเมล็ดพืชเฉพาะให้ใช้ kopt_x_y_z
## โดยที่ x.y.z เป็นเวอร์ชันเคอร์เนล สามารถละเว้นเวอร์ชันย่อยได้
## เช่น. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/mapper/vg-lv_root ro

## อุปกรณ์รูทด้วงเริ่มต้น
## เช่น. กรูท = (hd0)
# กรูท = (hd0)

## ควร update-grub สร้างตัวเลือกการบูต automagic ทางเลือก
## เช่น. ทางเลือก=จริง
## ทางเลือก = เท็จ
#ทางเลือก=จริง

## ควรอัปเดตตัวเลือกการบูต automagic ทางเลือกล็อค grub
## เช่น. lockalternative = จริง
## lockalternative=เท็จ
# lockalternative = เท็จ

## ตัวเลือกเพิ่มเติมเพื่อใช้กับตัวเลือกการบูตเริ่มต้น แต่ไม่ใช่กับ
##ทางเลือก
## เช่น. defoptions=vga=791 ประวัติย่อ=/dev/hda5
# defoptions=คอนโซล=hvc0

## ควร update-grub ล็อคตัวเลือกการบูต automagic เก่า
## เช่น. lockold = เท็จ
## lockold=จริง
#lockold=เท็จ

## ตัวเลือกไฮเปอร์ไวเซอร์ Xen เพื่อใช้กับตัวเลือกการบูต Xen เริ่มต้น
#xenhopt=

## ตัวเลือกเคอร์เนล Xen Linux เพื่อใช้กับตัวเลือกการบูต Xen เริ่มต้น
# xenkopt=คอนโซล=tty0

## ตัวเลือกเป้าหมายการบูต altoption
## อนุญาตให้ใช้ altoption หลายบรรทัด
## เช่น. altoptions=(คำต่อท้ายเมนูพิเศษ) ตัวเลือกการบู๊ตเพิ่มเติม
## altoptions = (กู้คืน) เดียว
# altoptions = (โหมดการกู้คืน) เดียว

## ควบคุมจำนวนเมล็ดที่ควรใส่ในเมนู.lst
## นับเฉพาะการเกิดขึ้นครั้งแรกของเคอร์เนล ไม่ใช่การนับ
## ตัวเลือกเคอร์เนลสำรอง
## เช่น. เท่าไหร่=ทั้งหมด
##กี่=7
#กี่=ทั้งหมด

## ระบุว่าทำงานใน Xen domU หรือให้ grub ตรวจจับโดยอัตโนมัติ
## update-grub จะไม่สนใจเคอร์เนลที่ไม่ใช่ xen เมื่อทำงานใน domU และในทางกลับกัน
## เช่น. indomU=ตรวจจับ
## indomU=จริง
## indomU=เท็จ
#indomU=จริง

## ควร update-grub สร้างตัวเลือกการบูต memtest86
## เช่น. memtest86=จริง
## memtest86=เท็จ
# memtest86=จริง

## ควร update-grub ปรับค่าของระบบบูตเริ่มต้น
## จะจริงหรือเท็จก็ได้
# updateddefaultentry=เท็จ

## ควร update-grub เพิ่ม savedefault ให้กับตัวเลือกเริ่มต้น
## จะจริงหรือเท็จก็ได้
# savedefault=เท็จ

## ## สิ้นสุดตัวเลือกเริ่มต้น ##

ชื่อเรื่อง Ubuntu 18.04.6 LTS, เคอร์เนล 4.15.0-173-generic
ราก (hd0)
เคอร์เนล /boot/vmlinuz-4.15.0-173-generic root=UUID=1c698c6b-ace0-4021-8cf9-4c0ee7d5364e ro console=hvc0 
initrd /boot/initrd.img-4.15.0-173-generic

ชื่อ Ubuntu 18.04.6 LTS, เคอร์เนล 4.15.0-173-generic (โหมดการกู้คืน)
ราก (hd0)
เคอร์เนล /boot/vmlinuz-4.15.0-173-root=UUID=1c698c6b-ace0-4021-8cf9-4c0ee7d5364e ro single
initrd /boot/initrd.img-4.15.0-173-generic


### สิ้นสุดรายการเมล็ดอัตโนมัติของ DEBIAN

จากนั้นฉันก็รีบูทและในที่สุด:

# apt ติดตั้ง -f
กำลังอ่านรายการแพ็กเกจ...เสร็จแล้ว
สร้างต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ...
แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นอีกต่อไป:
  liblua5.1-0 libyajl2
ใช้ 'apt autoremove' เพื่อลบออก
0 อัพเกรด, 0 ติดตั้งใหม่, 0 ลบและ 0 ไม่อัพเกรด
1 ไม่ได้ติดตั้งหรือถอดออกอย่างสมบูรณ์
หลังจากการดำเนินการนี้ จะใช้พื้นที่ดิสก์เพิ่มเติม 0 B
การตั้งค่า linux-image-4.15.0-175-generic (4.15.0-175.184) ...
ทริกเกอร์การประมวลผลสำหรับ linux-image-4.15.0-175-generic (4.15.0-175.184) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: กำลังสร้าง /boot/initrd.img-4.15.0-175-generic
W: การตั้งค่าการกำหนดค่าเครื่องมือ initramfs RESUME=/dev/mapper/vg-lv_swap
W: แต่ไม่มีอุปกรณ์แลกเปลี่ยนที่ตรงกัน
I: initramfs จะพยายามดำเนินการต่อจาก /dev/vda2
ฉัน: (UUID=4c30643f-055d-4ad7-babc-b2a6b8ac3138)
ฉัน: ตั้งค่าตัวแปร RESUME เพื่อแทนที่สิ่งนี้
/etc/kernel/postinst.d/x-grub-legacy-ec2:
ค้นหาไดเร็กทอรีการติดตั้ง GRUB ... พบ: /boot/grub
กำลังค้นหาไฟล์เริ่มต้น ... พบ: /boot/grub/default
กำลังทดสอบไฟล์ GRUB menu.lst ที่มีอยู่ ...พบ: /boot/grub/menu.lst
ค้นหาภาพสแปลช ... ไม่พบ กำลังข้าม ...
พบเคอร์เนล: /boot/vmlinuz-4.15.0-173-generic
แทนที่ไฟล์ config /run/grub/menu.lst ด้วยเวอร์ชันใหม่
พบเคอร์เนล: /boot/vmlinuz-4.15.0-175-generic
พบเคอร์เนล: /boot/vmlinuz-4.15.0-173-generic
แทนที่ไฟล์ config /run/grub/menu.lst ด้วยเวอร์ชันใหม่
กำลังอัปเดต /boot/grub/menu.lst ... เสร็จแล้ว

/etc/kernel/postinst.d/zz-update-grub:
การจัดหาไฟล์ `/etc/default/grub'
กำลังสร้างไฟล์การกำหนดค่าด้วง ...
พบอิมเมจ linux: /boot/vmlinuz-4.15.0-175-generic
พบภาพ initrd: /boot/initrd.img-4.15.0-175-generic
พบอิมเมจ linux: /boot/vmlinuz-4.15.0-173-generic
พบภาพ initrd: /boot/initrd.img-4.15.0-173-generic
เสร็จแล้ว
W: APT วางแผนให้ dpkg ทำมากกว่าที่รายงานกลับมา (0 ต่อ 4)
   แพ็คเกจที่ได้รับผลกระทบ: linux-image-4.15.0-175-generic:amd64

ระหว่างขั้นตอนการติดตั้ง ฉันเลือก: เมนูใหม่.lst

ในตอนท้าย ฉันรีบูตอีกครั้งและโหลดเคอร์เนลใหม่อย่างถูกต้อง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา