Score:1

ไม่สามารถลบไฟล์บน WSL Ubuntu 20.02.2

ธง ru

นี่อาจเกิดจากการปิด WSL เมื่อกระบวนการลบไม่เสร็จสมบูรณ์ และตอนนี้ฉันต้องการลบไฟล์นี้


ls -lba ผลลัพธ์นี้

root@A12581:/HelloWorld/android-kernel/.repo/projects/prebuilds/boot-artifacts.git# ls -lba
ls: ไม่สามารถเข้าถึง '.repo_config.json': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
รวม 0
drwxr-xr-x 1 รูทรูท 4096 28 ม.ค. 09:27 น.
drwxr-xr-x 1 รูท 4096 27 ม.ค. 15:56 ..
-?????????? ? ? ? ? ? .repo_config.json

แต่ฉันไม่สามารถลบไฟล์นี้ได้ / ลบโฟลเดอร์ที่มีไฟล์นี้ / เปลี่ยนชื่อโฟลเดอร์ที่มีไฟล์นี้


สภาพแวดล้อมของฉัน:

WSL1

อูบุนตู 20.04.2 LTS

in flag
นี่เป็นสัญญาณของระบบไฟล์เสียหาย น่าเสียดายที่ WSL1 ไม่มีกลไกในการซ่อมแซมดัชนีไฟล์ คุณอาจต้องการช่วยตัวเองและสร้างคอนเทนเนอร์ใหม่ ... อาจใช้ WSL2
Nate T avatar
it flag
ข้อความแสดงข้อผิดพลาดแจ้งว่าไม่มีไฟล์นี้อยู่ ตรวจสอบเพื่อให้แน่ใจว่ามีพาธและอยู่ภายในระบบไฟล์ wsl ของคุณ คุณอาจพิมพ์ชื่อพาธของไฟล์ผิด หรือไฟล์นั้นอยู่นอกระบบไฟล์ WSL (เช่น อยู่ในไดรฟ์ Windows ของคุณ) โปรดจำไว้ว่า wsl ทำงานกับทรัพยากรบนระบบไฟล์ wsl ซึ่งโดยปกติจะถูกสร้างขึ้นข้างๆ ไดรฟ์ C ของคุณ และมักจะอยู่ในไดรฟ์อื่นโดยสิ้นเชิง..
NotTheDr01ds avatar
vn flag
คุณเคยมีความก้าวหน้าในเรื่องนี้หรือไม่? ปัญหาที่คล้ายกันปรากฏขึ้นในวันนี้บน Unix & Linux Stack
user16387400 avatar
ru flag
@NotTheDr01ds ขอโทษที่ต้องพูด แต่ดูเหมือนว่าจะไม่มีวิธีอื่นนอกจากทำการสำรองข้อมูลและติดตั้งระบบใหม่ทั้งหมด
Score:0
ธง vn

@matigo อาจถูกต้องกับความคิดเห็นเกี่ยวกับความเสียหายของระบบไฟล์ ฉันเห็นด้วยว่าการใช้ ext4 ของ WSL2 นั้นแข็งแกร่งกว่าอย่างแน่นอนหากเหมาะกับความต้องการของคุณ

หากคุณยังไม่ได้ทำ ให้ทำ wsl -- ปิดเครื่อง (จาก PowerShell) เพื่อให้แน่ใจว่ามีการปลดแฮนเดิล/ล็อคใดๆ จากนั้นรีสตาร์ทและลองอีกครั้ง มีโอกาสทำงานค่อนข้างน้อย แต่ก็คุ้มค่าที่จะลองเพราะมันเร็วมาก

หากไม่ได้ผล ฉันขอแนะนำสิ่งต่อไปนี้เพื่อพยายามซ่อมแซมอินสแตนซ์ WSL1

โดยทั่วไปไปกลับอินสแตนซ์ WSL1 ผ่าน wsl -- ส่งออก/wsl -- นำเข้า. เดอะ น้ำมันดิน ไป-กลับที่กระบวนการนี้ดำเนินการ ควร (หวังว่า) จะลบไฟล์ที่เสียหายออกเมื่อทำการเก็บถาวรหรือยกเลิกการเก็บถาวร อย่างใดอย่างหนึ่ง

จาก PowerShell:

#ยืนยันรายชื่อผู้จัดส่ง
wsl -l -v
# ชื่อการแจกจ่ายอาจเป็น "Ubuntu" หรือ "Ubuntu-20.04" - ปรับบรรทัดต่อไปนี้ให้เหมาะสม:
wsl -- ปิดเครื่อง
ซีดี ~ \ เอกสาร
mkdir WSL\images
mkdir WSL\instances\UbuntuRecovery
wsl --export Ubuntu WSL\images\ubuntu.tar
wsl --import UbuntuRecovery WSL\instances\UbuntuRecovery WSL\images\ubuntu.tar --version 1
wsl -d การกู้คืน Ubuntu

ดูว่าไฟล์หายไปหรือสามารถลบได้ในอินสแตนซ์ใหม่นั้น

ถ้าใช่ และถ้าทุกอย่างดูโอเคในอินสแตนซ์ใหม่ ให้ทำดังนี้

  • ตั้งชื่อผู้ใช้เริ่มต้นในอินสแตนซ์นั้นผ่าน /etc/wsl.conf ไฟล์ต่อ คำตอบนี้.
  • ออกจากอินสแตนซ์
  • อีกครั้งจาก PowerShell:
    wsl -- ยุติการกู้คืน Ubuntu
    wsl --set-default UbuntuRecovery
    

อินสแตนซ์ใหม่จะเป็นค่าเริ่มต้นเมื่อใดก็ได้ wsl กำลังทำงานอยู่

สุดท้าย ลบอินสแตนซ์ดั้งเดิมที่เสียหายด้วย:

wsl --unregister อูบุนตู

สิ่งสำคัญ: มันคือ ทำลายล้าง การดำเนินการ. ตรวจสอบให้แน่ใจว่าทุกอย่างทำงานได้ตามที่ตั้งใจไว้ ในด้านสว่างเราได้ทำการสำรองข้อมูลแล้ว ...

คุณยังสามารถถอนการติดตั้ง "App" ของ Ubuntu ที่ติดตั้งจาก Store ได้ในตอนนั้น

คุณจะเปิดตัวผ่าน wsl (หากยังไม่เคยใช้) หรือ Windows Terminal ตั้งแต่ ubuntu.exe (หรือ ubuntu2004.exe) คำสั่งจะหายไป

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา