ดังนั้นฉันมีข้อผิดพลาดในสคริปต์ในไดเรกทอรี init.d และบรรทัดล่าง ... ฉันไม่สามารถบูต pi ได้อย่างสมบูรณ์
ฉันจะบูตเข้าสู่ runlevel 1 (โหมดผู้ใช้คนเดียว) เพื่อให้ฉันสามารถแก้ไขข้อบกพร่องได้อย่างไร
ดังนั้นฉันมีข้อผิดพลาดในสคริปต์ในไดเรกทอรี init.d และบรรทัดล่าง ... ฉันไม่สามารถบูต pi ได้อย่างสมบูรณ์
ฉันจะบูตเข้าสู่ runlevel 1 (โหมดผู้ใช้คนเดียว) เพื่อให้ฉันสามารถแก้ไขข้อบกพร่องได้อย่างไร
คำตอบ:
นั่นไม่ใช่วิธีการป้อน runlevel 1 แต่มีตัวเลือกการบูต "เซฟโหมด" ในเฟิร์มแวร์ราสเบอร์รี่ Pi ในการเปิดใช้งานคุณต้องใส่จัมเปอร์ระหว่างพิน 5 และ 6 บนส่วนหัว P1 (GPIO) เมื่อทำการบูท
ถ้าคุณทำเช่นนี้ bootloader จะไม่สนใจconfig.txt
ไฟล์ (ยกเว้นจากavoid_safe_mode
ตัวเลือกที่สามารถใช้ในการปิดใช้งานคุณลักษณะนี้) และจะพยายามบูตkernel_emergency.img
(ถ้ามี) kernel.img
แทน
ค่าเริ่มต้นkernel_emergency.img
มีบิลด์ฉุกเฉินพิเศษinitramfs
และมันจะบู๊ตไปยัง OS ที่ใช้งาน busybox เพื่อให้คุณสามารถแก้ไขปัญหาในระบบปฏิบัติการของคุณได้ด้วยตนเอง (หรือเปลี่ยนพารามิเตอร์การบูตเคอร์เนลเพื่อรัน runlevel 1 ในการบูตครั้งถัดไป) อย่าลืมเรียกใช้sync
ก่อนที่จะเปิดเครื่องลงตั้งแต่ปีreboot
หรือshutdown
คำสั่งอาจไม่ทำงาน
เพิ่มที่ส่วนท้ายของบรรทัด
init=/bin/sh
กดตกลงแล้ว Esc เพื่อบู๊ต ...... มันจะบู๊ตคุณในบรรทัดคำสั่ง
# /etc/init.d/mountall.sh
(สิ่งนี้จะทำบางสิ่ง)
# mount -n -o remount,rw /
(นี่จะนับใหม่ / เพื่อให้คุณสามารถเปลี่ยนแปลงได้)
ตอนนี้คุณควรจะสามารถแก้ไข init.d config ......
หลายคำตอบที่นี่ไม่ถูกต้องในขณะนี้:
วิธีจัมเปอร์พินของ GPIO นั้นถูกลบออกจากระบบ upstream ดังนั้นตอนนี้จะใช้ได้เฉพาะในกรณีที่คุณใช้อิมเมจ NOOBS เท่านั้น
Raspbian Jessie ย้ายไป systemd ทำลายinit=/bin/sh
แฮ็ค เมื่อคุณทำเช่นนี้มันบ่นcan't access tty: job control turned off
โชคดีที่มีวิธีแก้ปัญหาที่ใช้งานได้จริงซึ่งให้การเข้าถึงผู้ใช้คนเดียวจริง ๆ : เพิ่มช่องว่างและ1
ท้ายที่สุดcmdline.txt
หลังจากrootwait
พารามิเตอร์
เมนูการบูตค้างไว้ไม่มีอยู่ในอิมเมจ Raspbian Jessie OS หุ้นดังนั้นคุณจะต้องทำสิ่งนี้โดยแก้ไข/boot/cmdline.txt
จากคอมพิวเตอร์เครื่องอื่นหากคุณไม่ได้ใช้อิมเมจ NOOBS
ฉันไม่สามารถหาวิธีบังคับให้ pi บูตเข้าสู่ runlevel 1 ได้ดังนั้นฉันจึงใช้ดิสก์สดของ fedora ที่ฉันวางไว้แล้วใช้เทอร์มินัลเพื่อลบสคริปต์ที่เป็นปัญหาออกจากไดเรกทอรี /etc/init.d
หากคุณต้องการที่จะเข้าถึงและการเปลี่ยนแปลงการ์ด SD ลินุกซ์ไฟล์พาร์ทิชันจาก Windows คุณสามารถทำมันได้ด้วยหนึ่งของสาธารณูปโภคเหล่านี้
บูตเข้าสู่ runlevel 1
$ sudo init 1
หลังจากบูทเข้าสู่ runlevel 1
$ passwd
หมายเหตุ: เพื่อ runlevel 1 เปลี่ยนไฟล์/etc/inittab
จากid:2:initdefault:
เป็นสิ่งที่คล้ายกัน:id:1:initdefault: