บูตลดลงไปที่พรอมต์ (initramfs) / busybox


204

ฉันใช้ HP pavilion dv6000 dual boot win7 และ Ubuntu 12.04 (ดีจนถึงวันนี้) หลังจากรีบู๊ตกระบวนการบู๊ตจะหยดลงที่เชลล์ BusyBox และฉันก็จบที่พรอมต์:

BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)

ฉันได้ทำการค้นคว้าผู้อื่นที่มีปัญหาเดียวกันนี้แล้ว แต่ไม่สามารถหาวิธีแก้ไขปัญหาเหล่านี้ได้สำหรับฉัน

ฉันลองวิธีที่อธิบายไว้ที่นี่และหลังจากคำสั่งสุดท้าย

mount -t ntfs-3g /dev/sda1 /root -o force

มันไม่ทำอะไรเลยและให้พรอมต์ (initramfs) อีกอันให้ฉัน

ฉันสามารถบูทไปยังซีดีสด (USB) และไปที่เทอร์มินัล แต่ดูเหมือนจะไม่ดีเท่าที่ควรเพราะฉันเห็น / dev / sda1 ในคำสั่ง ls แต่มันไม่รู้จักเมื่อฉัน ลองซีดีกับมัน

คำถามอีกข้อหนึ่ง: การใช้คำสั่งfdisk -lฉันจะบอกได้อย่างไรว่าจุดเมานท์ใด ( sda1/ sda2) คือพาร์ติชั่นของ windows และอูบุนตูอันใด?


1
นี่คือผู้ชนะ BTW cyberciti.biz/faq/…
dpm

3
ฉันไม่อยากเชื่อว่า Canonical ยังไม่ได้ติดตั้งเวิร์กโฟลว์ที่ใช้งานง่ายเพื่อแก้ไขสถานการณ์นี้ :(
knocte

จะต้องมีวิธีที่ดีกว่าในการแก้ไขกรณีและปัญหา คุณไม่จำเป็นต้องใช้ Live Ubuntu สำหรับงานเนื่องจากฉันจัดการเพื่อแก้ไขมันโดยไม่ได้ (inittramfs)ฉันคิดว่าคุณสามารถแก้ไขสิ่งที่แม้จะอยู่ใน
LéoLéopold Hertz 준영

4
@Masi ที่จริงแล้วการเรียกใช้ fsck จาก initramfs แก้ไขได้ในกรณีส่วนใหญ่ตอนนี้ แต่ในรุ่น ubuntu ที่เป็นปัจจุบันเมื่อมีการโพสต์คำถามนี้แม้หลังจากที่fsckทำงานแล้วข้อผิดพลาดเดียวกันก็ปรากฏขึ้นในการบูตอีกครั้ง
Amith KK

คำตอบ:


207

ในขณะที่คอนโซลinitramfsฉันผ่านการออกคำสั่งเพื่อออกจากเชลล์ คอนโซลเดียวกันถูกนำเสนอก่อนที่ฉัน แต่คราวนี้มีชื่อที่แน่นอนของพาร์ติชันที่ได้รับความเสียหาย

BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash) 
Enter 'help' for a list of built-in commands.

(initramfs) exit

/dev/mapper/ubuntu--vg-root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options) 
fsck exited with status code 4. 
The root filesystem on /dev/mapper/ubuntu--vg-root requires a manual fsck. 

BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) fsck /dev/mapper/ubuntu--vg-root -y

fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
/dev/mapper/ubuntu--vg-root contains a file system with errors, check forced.

หลังจากการตรวจสอบเสร็จสิ้นฉันจะรีบูทระบบ

BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) reboot

และนั่นคือฉันได้กลับเข้าสู่ระบบไฟล์โดยไม่มีข้อผิดพลาด


14
ทำงานกับ Ubuntu 16.04
Hastig Zusammenstellen

3
ทำงานให้ฉัน แต่ทำไมมันเกิดขึ้น?
नंद

3
ลูกเห็บ ramsudharsan ผู้ช่วยให้รอดของจักรวาล
Mike Miller

1
แต่ถ้าคีย์บอร์ดไม่ทำงานล่ะ : - /
Matt

3
@Matt เปิดใช้งานตัวเลือกแป้นพิมพ์ในการตั้งค่า BIOS (หากคุณปิดการใช้งานแป้นพิมพ์ในระหว่างการบูทขึ้นให้กดปุ่มเปิด / ปิดค้างไว้จนกว่าคุณจะได้ยินเสียงรีเซ็ตจากบอร์ด)
ramsudharsan

86

ดูเหมือนว่าคุณมีซุปเปอร์บล็อกที่ไม่ดี ในการแก้ไขปัญหานี้:

ก่อนอื่นให้บู๊ตเป็น CD สดหรือ USB

ค้นหาหมายเลขพาร์ติชันของคุณโดยใช้

sudo fdisk -l|grep Linux|grep -Ev 'swap'

จากนั้นแสดงรายการ superblock ทั้งหมดโดยใช้คำสั่ง:

sudo dumpe2fs /dev/sda2 | grep superblock

แทนที่sda2หมายเลขไดรฟ์ของคุณ

คุณควรได้ผลลัพธ์ที่คล้ายกันนี้

  Primary superblock at 0, Group descriptors at 1-6
  Backup superblock at 32768, Group descriptors at 32769-32774
  Backup superblock at 98304, Group descriptors at 98305-98310
  Backup superblock at 163840, Group descriptors at 163841-163846
  Backup superblock at 229376, Group descriptors at 229377-229382
  Backup superblock at 294912, Group descriptors at 294913-294918
  Backup superblock at 819200, Group descriptors at 819201-819206
  Backup superblock at 884736, Group descriptors at 884737-884742
  Backup superblock at 1605632, Group descriptors at 1605633-1605638
  Backup superblock at 2654208, Group descriptors at 2654209-2654214
  Backup superblock at 4096000, Group descriptors at 4096001-4096006
  Backup superblock at 7962624, Group descriptors at 7962625-7962630
  Backup superblock at 11239424, Group descriptors at 11239425-11239430
  Backup superblock at 20480000, Group descriptors at 20480001-20480006
  Backup superblock at 23887872, Group descriptors at 23887873-23887878

เลือก superblock สำรองจากรายการนี้สำหรับ superblock สำรอง # 32768

ตอนนี้เพื่อตรวจสอบและซ่อมแซมระบบไฟล์ Linux โดยใช้ superblock สำรอง # 32768:

sudo fsck -b 32768 /dev/sda2 -y

การ-yตั้งค่าสถานะใช้เพื่อข้ามFix?คำถามทั้งหมดและตอบคำถามทั้งหมดด้วยใช่โดยอัตโนมัติ

คุณควรได้ผลลัพธ์ที่คล้ายกันดังนี้:

fsck 1.40.2 (12-Jul-2007)
e2fsck 1.40.2 (12-Jul-2007)
/dev/sda2 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #241 (32254, counted=32253).
Fix? yes
Free blocks count wrong for group #362 (32254, counted=32248).
Fix? yes
Free blocks count wrong for group #368 (32254, counted=27774).
Fix? yes
..........
/dev/sda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda2: 59586/30539776 files (0.6% non-contiguous), 3604682/61059048 blocks

ตอนนี้ลองติดตั้งพาร์ติชัน

sudo mount /dev/sda2 /mnt

ตอนนี้ลองเรียกดูระบบไฟล์ด้วยคำสั่งต่อไปนี้

cd /mnt
mkdir test
ls -l
cp file /path/to/safe/location

หากคุณสามารถดำเนินการตามคำสั่งด้านบนได้คุณอาจแก้ไขข้อผิดพลาดได้มากที่สุด

ตอนนี้ให้รีสตาร์ทคอมพิวเตอร์และคุณควรจะสามารถบูตได้ตามปกติ

(ที่มา )


1
ฉันได้ทำตามขั้นตอนทั้งหมดสำหรับ sda1 แล้ว แต่ไม่สามารถทำส่วนสุดท้ายได้ "mkdir test" !! นอกจากนี้ยังมี sda5 ดังนั้นฉันคิดว่าจะทำซ้ำขั้นตอนนี้
Freddy

2
คุณเขียน "เลือก superblock สำรอง" สลับกับอะไร ฉันสามารถเลือกจากรายการได้หรือไม่
Mads Skjern

1
ฉันขอแนะนำให้เพิ่มคำตอบโดยต้องตอบว่าใช่สำหรับแต่ละ "แก้ไขคำถาม" แต่ยังมีคำถามเหล่านี้ได้อีกมากมายและสามารถตอบใช่สำหรับทุกคนโดยใช้แฟล็ก "-y"
Mads Skjern

2
+1 สำหรับผู้ที่ใช้ gparted และตอนนี้อยู่ที่นี่
Vitor Abella

2
เกิดอะไรขึ้นถ้าsudo fdisk -l|grep Linux|grep -Ev 'swap'ส่งคืน 2 บรรทัด / dev / sda2 และ / dev / sda5 สำหรับฉัน
knocte

60

ที่จริงแล้วการแก้ปัญหานั้นง่ายมากเพียงแค่เขียนคำสั่งfsck /dev/sdaxเช่นด้านล่างและกำหนดYว่าคอนโซลขอให้แก้ไขอะไร:

(initramfs) fsck /dev/sda1

หรือ

(initramfs) fsck /dev/sdaX

X ระบุหมายเลขชิ้นส่วนดิสก์ที่เมาท์

หากคุณไม่ต้องการกด 'y' ด้วยตนเองทุกครั้งที่ขอการแก้ไขคุณสามารถเรียกใช้คำสั่งด้วย-yตัวเลือก

(initramfs) fsck /dev/sdaX -y

5
ขอบคุณเพื่อนนี้แก้ไขปัญหาของฉันมันเป็นใน / dev / sda5
lotfio

5
ทำไมคำตอบนี้ยังไม่ได้รับการยอมรับ ง่ายและทำงานได้
Swapnil

3
ทางออกที่ดีและง่ายที่สุด!
kunicmarko20

2
ช่วยชีวิตฉันด้วย !!!
Eric Wang

2
ควรเป็นคำตอบที่ยอมรับ
Kareem

6
  1. คำตอบง่าย ๆ คือนำฮาร์ดดิสก์ของคุณแนบในระบบอื่นและเริ่มต้นระบบ (โปรดอย่าบูตจากฮาร์ดไดรฟ์ initramfs ของคุณที่ใช้กับ Ubuntu และgpartedติดตั้ง)
  2. เริ่มgpartedและเลือกฮาร์ดดิสก์ของคุณและเลือกตรวจสอบจากเมนูคลิกขวา

2

ฉันเพิ่งลองโชคดีโดยการบูทระบบด้วยเครื่องมือ "Parted Magic" จาก Live CD เมื่อมองไปที่พาร์ติชั่นจะมีการประกาศ "พื้นที่ที่ไม่รู้จัก" ของ GBytes บางตัวบนพาร์ติชัน Linux

ดังนั้นฉันจึงขยายพื้นที่ลินุกซ์ให้ครอบคลุมทั้งพาร์ติชันและ voila - ตั้งแต่นั้นบูท Linux ของฉันเหมือนเมื่อก่อนโดยไม่ล้มเหลว

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