โอ๊ะฉันต้องการ runlevel 1


10

ดังนั้นฉันมีข้อผิดพลาดในสคริปต์ในไดเรกทอรี init.d และบรรทัดล่าง ... ฉันไม่สามารถบูต pi ได้อย่างสมบูรณ์

ฉันจะบูตเข้าสู่ runlevel 1 (โหมดผู้ใช้คนเดียว) เพื่อให้ฉันสามารถแก้ไขข้อบกพร่องได้อย่างไร


1
ตรวจสอบลิงค์นี้สำหรับตัวเลือกหลาย ๆ ตัวraspberrypi.org/phpBB3/viewtopic.php?f=28&t=16185
Steve Robillard

คำตอบ:


16

นั่นไม่ใช่วิธีการป้อน runlevel 1 แต่มีตัวเลือกการบูต "เซฟโหมด" ในเฟิร์มแวร์ราสเบอร์รี่ Pi ในการเปิดใช้งานคุณต้องใส่จัมเปอร์ระหว่างพิน 5 และ 6 บนส่วนหัว P1 (GPIO) เมื่อทำการบูท

Safemode พิน

ถ้าคุณทำเช่นนี้ bootloader จะไม่สนใจconfig.txtไฟล์ (ยกเว้นจากavoid_safe_modeตัวเลือกที่สามารถใช้ในการปิดใช้งานคุณลักษณะนี้) และจะพยายามบูตkernel_emergency.img(ถ้ามี) kernel.imgแทน

ค่าเริ่มต้นkernel_emergency.imgมีบิลด์ฉุกเฉินพิเศษinitramfsและมันจะบู๊ตไปยัง OS ที่ใช้งาน busybox เพื่อให้คุณสามารถแก้ไขปัญหาในระบบปฏิบัติการของคุณได้ด้วยตนเอง (หรือเปลี่ยนพารามิเตอร์การบูตเคอร์เนลเพื่อรัน runlevel 1 ในการบูตครั้งถัดไป) อย่าลืมเรียกใช้syncก่อนที่จะเปิดเครื่องลงตั้งแต่ปีrebootหรือshutdownคำสั่งอาจไม่ทำงาน


นั่นคือสิ่งที่ฉันกำลังมองหา
Deac Karns

5
  • กดปุ่ม Shift เมื่อเริ่มต้น
  • กดปุ่ม "e" เพื่อแก้ไขการกำหนดค่า
  • ไปที่ cmdline.txt
  • เพิ่มที่ส่วนท้ายของบรรทัด

    init=/bin/sh

  • กดตกลงแล้ว Esc เพื่อบู๊ต ...... มันจะบู๊ตคุณในบรรทัดคำสั่ง

    # /etc/init.d/mountall.sh (สิ่งนี้จะทำบางสิ่ง)

    # mount -n -o remount,rw / (นี่จะนับใหม่ / เพื่อให้คุณสามารถเปลี่ยนแปลงได้)

  • ตอนนี้คุณควรจะสามารถแก้ไข init.d config ......

  • เมื่อคุณรีบูตอีกครั้ง .... กด shift ค้างไว้และลบ init = / bin / sh

ยอดเยี่ยม ฉันพบคำแนะนำในการเริ่มต้น แต่ไม่มีสิ่งที่ฉันต้องการนับใหม่ ขอบคุณ!
Richard Turner

3

หลายคำตอบที่นี่ไม่ถูกต้องในขณะนี้:

  • วิธีจัมเปอร์พินของ 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


2

ฉันไม่สามารถหาวิธีบังคับให้ pi บูตเข้าสู่ runlevel 1 ได้ดังนั้นฉันจึงใช้ดิสก์สดของ fedora ที่ฉันวางไว้แล้วใช้เทอร์มินัลเพื่อลบสคริปต์ที่เป็นปัญหาออกจากไดเรกทอรี /etc/init.d


1

หากคุณต้องการที่จะเข้าถึงและการเปลี่ยนแปลงการ์ด SD ลินุกซ์ไฟล์พาร์ทิชันจาก Windows คุณสามารถทำมันได้ด้วยหนึ่งของสาธารณูปโภคเหล่านี้


ยินดีต้อนรับ! กรุณาใช้การท่องเที่ยวและเยี่ยมชมศูนย์ช่วยเหลือ แม้ว่าสิ่งนี้อาจตอบคำถามในเชิงทฤษฎี แต่ก็ควรรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง ในความเป็นจริงเรากำลังบังคับใช้นโยบายนี้ : โปรดแก้ไขเพื่อให้คำตอบเป็นของตัวเองหากการเชื่อมโยงขาดในอนาคต หากไม่ได้รับการแก้ไขภายใน 48 ชั่วโมงจะถูกแปลงเป็น Community Wiki
Jacobm001

1
  1. บูตเข้าสู่ runlevel 1

    $ sudo init 1
    
  2. หลังจากบูทเข้าสู่ runlevel 1

    $ passwd
    

หมายเหตุ: เพื่อ runlevel 1 เปลี่ยนไฟล์/etc/inittabจากid:2:initdefault:เป็นสิ่งที่คล้ายกัน:id:1:initdefault:


2
นั่นเป็นการบูทสู่ runlevel 1 จริงๆเหรอ? ฉันหมายความว่ามันแทบจะไม่สามารถทำได้ถ้าเครื่องไม่บู๊ตในตอนแรกใช่ไหม?
Bex

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