แก้ไข. bashrc โดยไม่ได้ตั้งใจและตอนนี้ฉันไม่สามารถเข้าสู่ระบบแม้จะป้อนรหัสผ่านอย่างถูกต้อง


23

ฉันทำยุ่งกับไฟล์ bashrc ครั้งใหญ่ ฉันกำลังติดตั้ง Gurobi และฉันต้องตั้งค่าตัวแปรพา ธ ในไฟล์ bashrc ดังนั้นฉันแทนที่ข้อความทั้งหมดใน bashrc ด้วยตัวแปร path และบันทึกไฟล์ bashrc และฉันก็ทำให้แน่ใจว่าหากมีสิ่งใดไม่ดีเกิดขึ้นฉันมีสำเนาสำรองของไฟล์นี้ ไฟล์สำรองข้อมูลที่ไม่ได้แก้ไขดั้งเดิมอยู่ในโฟลเดอร์ดาวน์โหลด

ตอนนี้เมื่อฉันรีสตาร์ทระบบฉันไม่สามารถเข้าสู่ระบบได้แม้จะให้รหัสผ่านที่เหมาะสม ดังนั้นฉันต้องการขอความช่วยเหลือจากคุณ การแก้ไขประเภทใดที่เป็นไปได้เนื่องจากข้อเท็จจริงที่ว่าฉันยังคงมีไฟล์ bashrc ในไดเรกทอรีดาวน์โหลด


1
ใช้กู้ภัยด้วงหรือเซสชั่นการถ่ายทอดสดเพื่อคัดลอกจากการดาวน์โหลด dir มากกว่าหนึ่งที่ไม่ถูกต้อง
Rinzwind

คุณช่วยอธิบายรายละเอียดข้อเสนอแนะของคุณได้ไหม? ฉันยังเป็นมือใหม่เมื่อพูดถึงอูบุนตู
crypto

1
ตอนนี้คุณทำให้ฉันสงสัยว่าเกิดอะไรขึ้นกับตัวเลือกที่ไม่ปลอดภัยที่เคยมีอยู่บนหน้าจอเข้าสู่ระบบสำหรับสถานการณ์ประเภทนี้
kasperd

3
ทำไมไม่เข้าสู่ระบบในฐานะรูทและแก้ไขไฟล์. bashrc ของผู้ใช้?
jamesqf

3
วิธีดั้งเดิมคือการบูตเข้าสู่โหมดผู้ใช้คนเดียว คุณต้องขัดจังหวะการบูตและเพิ่ม "เดี่ยว" กับสายการระบุและเคอร์เนลบูตพารามิเตอร์ของคุณตามที่อธิบายไว้เช่นที่นี่
ปีเตอร์ - Reinstate Monica

คำตอบ:


38

ใช้ LiveUSB หรือ LiveDVD

บูตเข้าสู่เซสชันสดติดฮาร์ดไดรฟ์ของคุณและคัดลอก.bashrcไฟล์ต้นฉบับของคุณผ่านการแก้ไข

จากนั้นคุณสามารถรีบูทได้อย่างปลอดภัย (เปิดไดรฟ์ USB หรือ DVD)

ข้อมูลทั่วไป: ในกรณีที่คุณไม่มี.bashrcไฟล์สำรองคุณสามารถใช้ไฟล์จาก liveUSB / DVD


ฉันถือว่าจุดทั้งหมดของการสำรองข้อมูลคือเมื่อไฟล์ของคุณแตกต่างจากไฟล์เริ่มต้นจากซีดีการติดตั้ง
Dmitry Grigoryev

2
ใช่พวกเขาเป็น แต่ก็มีความเป็นไปได้เช่นกันที่คุณทำลายบางสิ่งบางอย่างและไม่รู้อะไรเลยหรือคุณไม่มีการสำรองข้อมูล ว่าทำไมฉันจะเพิ่มการตอบสนองต่อการตรวจการณ์ถามข้อมูลยังทั่วไปสำหรับใครก็ตามที่อาจจะไม่ได้สำรอง;)
คาล Polovka

ใช่ถ้าคุณไม่มีข้อมูลสำรองของสิ่งที่คุณทำลายคุณจะต้องเริ่มจากศูนย์ โชคดีที่ OP มีหนึ่งตัว
Dmitry Grigoryev

25

คุณควรจะสามารถบูตเข้าสู่โหมดการกู้คืนได้ซึ่งจะช่วยให้คุณสามารถวางลงในรูทเชลล์แล้วแก้ไขปัญหาจากตรงนั้น นี่เป็นการหลีกเลี่ยงความจำเป็นในการดาวน์โหลดระบบปฏิบัติการเพิ่มเติม

คำแนะนำที่นำมาจาก Ubuntu wiki:

  1. เปิดคอมพิวเตอร์ของคุณ
  2. รอจนกระทั่ง BIOS โหลดเสร็จหรือใกล้จะเสร็จ (ในช่วงเวลานี้คุณอาจเห็นโลโก้ของผู้ผลิตคอมพิวเตอร์ของคุณ)
  3. กดปุ่ม Shift ค้างไว้อย่างรวดเร็วซึ่งจะทำให้เมนู GNU GRUB ปรากฏขึ้น (หากคุณเห็นโลโก้ Ubuntu คุณพลาดจุดที่คุณสามารถเข้าสู่เมนูด้วง)

  4. เลือกบรรทัดที่ขึ้นต้นด้วย " Advanced options"

  5. เลือกบรรทัดที่ลงท้ายด้วย " (recovery mode)" อาจเป็นบรรทัดที่สองคล้ายกับ:

    Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

  6. กด Return และเครื่องของคุณจะเริ่มกระบวนการบู๊ต

  7. หลังจากนั้นครู่หนึ่งเวิร์กสเตชันของคุณควรแสดงเมนูที่มีตัวเลือกจำนวนมาก หนึ่งในตัวเลือก (คุณอาจต้องเลื่อนลงไปด้านล่างของรายการ) จะเป็น " Drop to root shell prompt" กด Return โดยไฮไลต์ตัวเลือกนี้

  8. พาร์ติชันรากติดตั้งแบบอ่านอย่างเดียว หากต้องการเมาท์มันอ่าน / เขียนให้ป้อนคำสั่ง

    mount -o remount,rw /

  9. หากคุณมี / home, / boot, / tmp หรือจุดเชื่อมต่ออื่น ๆ บนพาร์ติชันแยกต่างหากคุณสามารถติดตั้งด้วยคำสั่ง

    mount --all

    (สิ่งนี้จะต้องทำตามขั้นตอนที่ 8 เพื่อให้/etc/mtabสามารถเขียนได้)

หากคุณไม่มีตัวเลือกการกู้คืนคุณสามารถกดeใน GRUB เพื่อแก้ไขตัวเลือกการบูตมาตรฐานและเพิ่มrecoveryที่ส่วนท้ายของlinuxบรรทัด (บรรทัดที่สองโดยค่าเริ่มต้นก่อนหน้านี้initrd) จากนั้นกดF10เพื่อเรียกใช้


9

ใช้ซีดีสด

  1. บูตโดยใช้ซีดี / ดีวีดีสด ในกรณีที่คุณไม่มี iso และไม่ต้องการดาวน์โหลด iso ขนาดใหญ่ให้ดาวน์โหลด Tiny Core - 10MB
  2. ในประเภทบรรทัดคำสั่งsudo mount /dev/sdXn /mntที่sdXnเป็นพาร์ทิชันอูบุนตูของคุณ
  3. ประเภทcd /mnt/home/<your user name>/Downloads.
  4. ตอนนี้คืนค่าของคุณ.bashrcเป็นของคุณใหม่.bashrcโดยใช้คำสั่งmv ../.bashrc ../.bashrc_old && cp ./.bashrc ../นี้
  5. ตอนนี้รีสตาร์ทในระบบของคุณและคุณควรจะไป

8

ใส่ dvd หรือ USB ที่คุณใช้ในการติดตั้ง Ubuntu และบูตจากมัน เลือก "ลอง Ubuntu" และรอให้ส่งคืนเดสก์ท็อป

ตรวจสอบดิสก์ใน lauchers เพื่อดูว่ามีบ้านของคุณอยู่ เมื่อคลิกที่เมาท์เข้าสู่ / media /

เปิดเทอร์มินัลและcdเข้าไปในดาวน์โหลดของคุณและคัดลอกไฟล์ลงในบ้านของคุณ นั่นจะเป็น:

cd /media/home/{your_username}/Downloads/
sudo cp .bashrc ../

และรีบูตโดยไม่มี dvd / USB


ฉันได้รับบางอย่างเช่น cp: ไม่สามารถสร้างไฟล์ปกติ '../bashrc': ปฏิเสธการอนุญาต :(
crypto

อาใช้ sudo! :)
Rinzwind

มันเป็นคำถามที่อ่อนแอ ขอโทษ บทเรียนได้เรียนรู้! และอย่างที่คุณแนะนำฉันยอมรับคำตอบของมิคาล หวังว่าไม่เป็นไร
crypto

ไม่เป็นปัญหาฉันอยู่ที่ 200 anyways> :)
Rinzwind

6

เชื่อมต่อผ่าน SFTP

เชื่อมต่อกับระบบผ่าน SFTP ทั้งจากsftpคำสั่งในตัวของเครื่อง Linux หรือพีซีที่ใช้ WinSCP หรือ FileZilla และซ่อมแซมไฟล์ .bashrcไฟล์ไม่เกี่ยวข้องกับปกติใน SFTP (มันเป็นไปได้ที่จะปรับแต่งของคุณauthorized_keysไฟล์ที่จะทำให้มันเกี่ยวข้อง แต่สงสัยจะสูญที่คุณทำนั้น)


หรือในทำนองเดียวกันเชื่อมต่อกับssh dash(หรือเปลือกที่ไม่ใช่ทุบตีอื่น ๆ )
Peter Taylor

5

ฉันแนะนำให้มีบัญชีสอง sudo เสมอ นี่คือบัญชีที่สามารถทำหน้าที่เป็นรูทในเกือบทุกกรณีหากคุณให้รหัสผ่านปกติสำหรับบัญชีนั้น คุณจะได้รับการทำหน้าที่เป็นรากชั่วคราว

หากคุณไขบัญชีหนึ่งขึ้นคุณสามารถแก้ไขได้ด้วยบัญชีอื่น

แต่มันอาจเป็นไปได้ที่จะอยู่ในบัญชีปกติและ 'su screwed-up-sudo-account-name' หากคุณรู้รหัสผ่าน จากนั้นคุณจะทำหน้าที่เป็นบัญชีที่เมาและสามารถ 'sudo cp backup .bashrc' หลังจาก 'dc / home / screwed-up-account' ตอนนี้ฉันเป็นไปได้โดยที่ไม่ถูกเมา แต่ไม่แน่ใจในกรณีของคุณโดยเฉพาะ


4

ตามที่มีคนพูดไม่กี่บัญชี "sudo" มากกว่าหนึ่งบัญชีเป็นวิธีที่ดีที่สุด ประการที่สองถ้าคุณทำ mods มากมายในไฟล์. bashrc ของคุณให้วาง copy ลงใน memory stick ก่อนที่คุณจะเริ่มทำการแก้ไขแล้วคุณไม่ต้องเริ่มต้นด้วย blank คุณสามารถกลับไปหาตัวสุดท้ายที่รู้จักได้ ไฟล์ bashrc โดยไม่เสียการแก้ไขก่อนหน้านี้ทั้งหมด สิ่งแรกที่ฉันทำเมื่อแก้ไขด้วย. bashrc หรือ. vimrc หรือ . . ไฟล์การกำหนดค่าใด ๆ จะทำการคัดลอกไปยังหน่วยความจำที่มีประโยชน์ของฉันก่อนที่ฉันจะเริ่ม ฉันเป็นมนุษย์ฉันมีลูกฉันได้รับวอกแวก ฉันมีเมมโมรี่สติ๊กเต็มไปด้วยไฟล์ปรับแต่งสำหรับ bash, vim, conky, openbox, tint2 และอื่น ๆ


เคล็ดลับก็คือการใช้ RCS เพื่อประวัติรุ่นของไฟล์การกำหนดค่า (เช่น bashrc, vimrc หรืออะไรก็ได้ใน / etc)
ChuckCottrill

0

เข้าสู่ระบบในฐานะ root แทนและใช้การสำรองข้อมูลเพื่อแก้ไข. bashrc ของคุณเช่นเดียวกับคำตอบอื่น ๆ

เพื่อความปลอดภัยสูงสุดอย่าล็อกอินเข้าสู่สภาพแวดล้อม X Windows ปกติ ให้กดcontrol-alt-F2เพื่อไปที่คอนโซลข้อความแล้วลงชื่อเข้าใช้เมื่อคุณแก้ไขปัญหาแล้วให้เรียกใช้exitเพื่อออกจากระบบรูทเชลล์แล้วกดcontrol-alt-F7เพื่อกลับไปที่ X Windows (โปรดทราบว่า X Windows อาจอยู่บน tty1 แทนที่จะเป็น tty7 ดังนั้นคุณอาจต้องใช้control-alt-F1แทน tty6 หรือ tty7 เป็นแบบดั้งเดิมในอดีต ทำแล้วทดลองเพื่อหาวิธีกำหนดค่าระบบของคุณ)


บัญชีรูทถูกปิดการใช้งานใน Ubuntu ดังนั้นหากคุณเปิดใช้งานจะไม่มีวิธีการลงชื่อเข้าใช้ด้วยรูท
เซท

1
@Seth หากคุณสามารถเข้าถึง bootloader คุณสามารถบูตเข้าสู่โหมดการกู้คืนและรับรูทเชลล์ได้
บ๊อบ

@Bob จริง แต่นั่นไม่ใช่คำตอบ ที่ควรทำงานแม้ว่า
เซท

1
@Seth ใช่ฉันได้เพิ่มคำตอบของฉันเองแล้วพร้อมรายละเอียดเพิ่มเติมที่นั่น โอ้ BTW @ db48x ปกติ X11 รันบนtty7(Ctrl + Alt + F7) tty1ไม่ได้
บ๊อบ

ใช่ฉันไม่ทราบว่าพวกเขาปิดใช้งานบัญชีรูท บางทีฉันอาจจะไม่อัพเกรดเครื่อง Ubuntu หนึ่งเครื่องเพราะ ...
db48x

0

ทุกครั้งที่ฉันเปิดพีซีหลังจากเหตุการณ์นี้ฉันได้รับการต้อนรับด้วยหน้าจอเข้าสู่ระบบปกติของอูบุนตูยกเว้นว่าหลังจากป้อนรหัสผ่านหน้าจอจะกะพริบเป็นวินาทีและหน้าจอเข้าสู่ระบบจะแสดงตัวเองอีกครั้ง

ฉันไม่รู้ว่านี่เป็นปัญหาของคุณหรือไม่ แต่สิ่งนี้เกิดขึ้นกับฉันครั้งเดียว หากไฟล์ใด ๆ ที่โหลดบน shell-start (.bashrc, .bash_profile, .profile) แสดงข้อความเป็น stdout คุณจะไม่สามารถเข้าสู่ระบบแบบกราฟิกได้ คุณยังสามารถเข้าสู่ tty (ctrl + alt + f1) เข้าสู่ระบบจากที่นั่นแล้วกู้คืนไฟล์ของคุณ

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