ลบโฟลเดอร์“ / usr / share” โดยไม่ตั้งใจ


16

ระบบไม่เริ่มทำงาน ทำได้โดยใช้โดยrm - Rไม่ตั้งใจ ฉันจะกู้คืนระบบได้อย่างไร?


คุณแน่ใจหรือว่าคุณลบ/usr/shareโฟลเดอร์ .. ลอง .. เข้าสู่ระบบด้วยเซสชันสด .. คัดลอกและวาง/usr/shareโฟลเดอร์จากเซสชันสดไปยังพาร์ติชันรากของคุณ/usr/share
PRATAP

1
สิ่งที่ @PRATAP แนะนำอาจได้รับเพื่อให้คุณสามารถเข้าสู่ระบบได้ แต่โปรแกรมผู้ใช้จำนวนมากเก็บข้อมูลแอปพลิเคชันไว้ที่นั่นดังนั้นโปรแกรมจะแก้ไขเฉพาะโปรแกรมที่ใช้โดยระบบ 'สด' (ติดตั้งสื่อ) ของคุณ จากนั้นคุณจะต้องเข้าร่วมinstall --reinstallโปรแกรมอื่น ๆ หรือคุณสามารถติดตั้งใหม่โดยใช้ 'อย่างอื่น' ไม่มีรูปแบบ & จะบันทึกแอพที่ติดตั้งของคุณเช็ดไดเรกทอรีของระบบแล้วติดตั้งจากนั้นติดตั้งโปรแกรมเพิ่มเติมของคุณอีกครั้ง (ถ้าเป็น Ubuntu repos); แต่ตัวเลือกนี้อาจเป็นทางเลือกได้เนื่องจากคุณอาจเรียนรู้เพิ่มเติมเกี่ยวกับการพยายามแก้ไขด้วยตนเองก่อน มีการคืนค่าการสำรองข้อมูลของคุณอยู่เสมอ
guiverc

-> เพียง rm -R ใน / usr / share ไม่มีอะไรถูกลบ เนื้อหาเป็นของ root เพื่อให้ผู้ใช้ทั่วไปไม่สามารถลบได้
Rinzwind

@ Rinzwind และถ้าเป็นเช่นนั้นทำไมระบบไม่โหลด? ฉันจะรูทเพื่อแก้ไขได้อย่างไร
Mouvre

บางทีคุณอาจจะทำsudo rm -Rอย่างไร คำตอบที่ n0rbert โพสต์นั้นดูดีสำหรับฉัน นั่นคือวิธีที่จะไป
Rinzwind

คำตอบ:


48

คุณต้องติดตั้งแอปพลิเคชันทั้งหมดที่มีไฟล์/usr/shareใหม่

  1. บูตระบบจากโหมดการกู้คืนกับพรอมต์ราก

  2. rootfs remount mount -o rw,remount /อ่านเขียนโหมดที่มี

  3. ยกระดับอินเตอร์เฟซอีเธอร์เน็ตและรับที่อยู่ IP จากเซิร์ฟเวอร์ DHCP: dhclient enp0s3(ตรวจสอบชื่ออินเทอร์เฟซที่ถูกต้องในip aหรือifconfig -a)

  4. ระบุเซิร์ฟเวอร์ DNS โดย

    rm /etc/resolv.conf
    echo "nameserver 192.168.1.1" > /etc/resolv.conf
    

    (เปลี่ยน192.168.1.1เป็นเกตเวย์ / เราเตอร์ของคุณ)

  5. คุณต้องแก้ไขdpkgแพ็กเกจเนื่องจาก/usr/share/dpkg/cputableไฟล์นั้นหายไป(ไม่เช่นนั้นคุณจะพบ"E: error reading the cpu table"กับคำสั่ง apt / apt-get ใด ๆ )

    wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.19.0.5ubuntu2.1_amd64.deb
    dpkg -i dpkg_1.19.0.5ubuntu2.1_amd64.deb
    

    หรือติดตั้งจากแคช:

    dpkg -i /var/cache/apt/archives/dpkg_*.deb
    
  6. แพคเกจแคชอัพเดท:

    apt-get update
    
  7. ติดตั้งส่วนประกอบที่จำเป็น

    apt-get install --reinstall debconf linux-base
    mkdir /usr/share/python
    apt-get install --reinstall python2.7-minimal python3-minimal
    
  8. จากนั้นใช้หนึ่งซับด้านล่าง:

    apt-get install --reinstall $(dpkg -S /usr/share/ | sed 's/,//g' | sed 's/: \/usr\/share//g')
    

    ข้างบน:

    • dpkg -S /usr/share/ แสดงรายการแพ็คเกจที่คั่นด้วยเครื่องหมายจุลภาค
    • sed 's/,//g' - ลบเครื่องหมายจุลภาค
    • sed 's/: \/usr\/share//g'- ลบออก: /usr/shareในที่สุด

    ส่วนนี้อาจล้มเหลวด้วยข้อความเกี่ยวกับแพคเกจบางอย่าง ตัวอย่างเช่นบน VM ของฉันฉันมีปัญหากับbsdmainutilsดังนั้นฉันติดตั้งพวกเขาด้วย:

    dpkg -i /var/cache/apt/archives/bsdmainutils_*.deb
    

    จากนั้นรันใหม่อีกหนึ่งซับด้านบน

  9. แก้ไขแพ็คเกจที่เสียหาย

    dpkg --configure -a
    apt-get install -f
    
  10. ในที่สุดก็แก้ไข/etc/resolv.confลิงค์โดย

    rm /etc/resolv.conf
    ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    
  11. รีบูต

หมายเหตุ: การส่งผลให้ระบบคงที่จะไม่แสดงปัญหาใด ๆ ในขณะที่ทำงานหรือsudo apt-get checksudo debsums --all --changed


คำสั่งนี้จะใช้จากเซสชันสดหรือไม่
PRATAP

@PRATAP จากโหมดการกู้คืนก็เพียงพอแล้ว
N0rbert

ตกลงนั่นเป็นสิ่งที่ดี .. แต่แม้หลังจากลบ/usr/shareจะด้วงทำงานตามปกติและแสดงเมนูด้วง? ฉันคิดว่าฉันต้องลบมันและดูในพีซีที่ใช้งานได้จริงของฉัน .. คำตอบที่ดี .. ขอขอบคุณ ..
PRATAP

1
ฉันเพิ่งทดสอบสิ่งนี้บน VM มันเกือบจะเป็นทางออกที่ทำงานได้
N0rbert

1
@ N0rbert ขอบคุณสำหรับความช่วยเหลือมันใช้งานได้จริง!
Mouvre

2

คำตอบสั้น ๆ : คุณทำไม่ได้และคุณต้องติดตั้งแอพใหม่ตามคำแนะนำก่อนหน้านี้

อย่างไรก็ตามก่อนหน้านั้นฉันจะติดตั้งไดรฟ์ในคอมพิวเตอร์เครื่องอื่นและทดสอบการยกเลิกการลบโปรแกรมอรรถประโยชน์ที่มีอยู่สำหรับ ext3 / ext4 การค้นหาอย่างรวดเร็วใน Google ชี้ไปที่คนเหล่านี้:

extundelete: http://extundelete.sourceforge.net/

Easeus: https://www.easeus.com/resource/drive/ext3.htm

TestDisk: https://www.cgsecurity.org/wiki/TestDisk

วิธีแนะนำ: http://translatedby.com/you/howto-recover-deleted-files-on-an-ext3-file-system/original/

เป็นต้น


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