จะลบ Backupdb.backupsdb ในเครื่องของฉันได้อย่างไร


2

ในฮาร์ดไดรฟ์ในพื้นที่ของฉันบนเรติน่า MBP (2014, 10.11.3) มีโฟลเดอร์ Backupdb.backupsdb:

drwxr-xr-x+ 5 root wheel 170B 2 Jan 03:32 Backups.backupdb/

ฉันคิดว่าโฟลเดอร์มีอยู่ในไทม์แมชีนเท่านั้น? อย่างไรก็ตามฉันต้องการลบออกเนื่องจากมีเพียงข้อมูลสำรองเก่าที่ยังไม่เสร็จ:

drwxr-xr-x@ 5 root wheel 170B 20 Mär 14:06 2016-01-02-020746.inProgress/

ฉันปิดใช้งาน SIP แต่ไม่ใช้งานrm -rfหรือไม่sudo rm -rfทำงานแม้แต่ในโหมดการกู้คืน Operation not permittedฉันมักจะมี

ไม่มีใครรู้วิธีการลบหรือไม่


คุณลองลบโฟลเดอร์สำหรับการสำรองข้อมูลที่ไม่สมบูรณ์โดยใช้วิธีการที่คุณลองสำหรับไดเรกทอรีหลักหรือไม่?
samh

1
อาจเป็นไปได้ว่าไฟล์ถูกล็อค - คุณลองใช้คำสั่ง ls -leO @
Hefewe1zen

คำตอบ:


1

คำตอบสั้น ๆ คือลบ ACL ออกจากโฟลเดอร์ SIP ป้องกันไฟล์ระบบไม่ให้ถูกลบในฐานะ root (ดังนั้นเปิดใช้งานอีกครั้ง) ในขณะที่ ACL ใช้เพื่อป้องกันไม่ให้รูทแก้ไขไฟล์ผู้ใช้และอาจทำสำเนาสำรองของไฟล์ระบบ

นี่คือวิธีการแสดงรายการการอนุญาตในโฟลเดอร์เฉพาะที่ใช้ls -lซึ่งแสดงผลลัพธ์รูปแบบยาว

  • ls -lOแสดงให้เห็นว่าถูก จำกัด สำหรับ SIP และ O เป็นอักษรตัวใหญ่ "o" - ไม่น่าเป็นไปได้ที่คุณจะเห็นการ จำกัด หรือการตั้งค่าสถานะอื่น ๆ ใน Backups.backupdb
  • ls -leแสดงรายการควบคุมการเข้าถึง (ACL) - มีโอกาสสูงที่คุณมีบางสิ่งบางอย่างเช่น0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chownทำให้เกิดการsudo rmล้มเหลวในตัวคุณ ใช้หมายเลข (0 ในกรณีนี้) เพื่อลบข้อ จำกัด ACL นั้น

คุณสามารถรวมทั้งเป็นls -lOeและรับสถานะ จำกัด ACL และ SIP อย่างที่คุณสามารถอ่านได้ในโพสต์นี้ว่ามัลแวร์สามารถปลดล็อกการสำรองข้อมูล Time Machine ได้อย่างไร - คุณสามารถทำเช่นเดียวกับรูท / sudo จากบัญชีผู้ดูแลระบบ:

chmod -a# 0 /Backups.backupdb

นอกจากนี้คุณอาจต้องลบ ACL ซ้ำเนื่องจากไดเรกทอรีจะต้องทำให้เปลี่ยนแปลงได้และจากนั้นคุณสามารถเปลี่ยนไฟล์ภายใน นอกจากนี้ ACL สามารถสืบทอดได้ดังนั้นขึ้นอยู่กับสิทธิ์ที่แน่นอนของคุณในโฟลเดอร์และไฟล์ที่มี - คุณอาจต้องเปลี่ยนสิ่งต่าง ๆ เล็กน้อยจากไวยากรณ์ข้างต้น


ขอบคุณสำหรับคำตอบ. ฉันเล่นไปเล็กน้อยและดูเหมือนว่าฉันลบทุกไฟล์ (ค้นหา -type f ไม่แสดงผลลัพธ์) แต่ฉันยังไม่สามารถลบโฟลเดอร์ได้เพราะมี symlink อยู่ในนั้นฉันไม่สามารถลบได้ (ทำไมเลย) ฉันรันคำสั่งfind . -type d -exec chmod -R -a# 0 . {} \;ด้วย type d, f และ l หลังจากนั้นฉันสามารถลบไฟล์ด้วยfind . -type d -exec rm -rf {} \;แต่ลิงค์ sym ยังคงอยู่ที่นั่นฉันไม่สามารถลบได้ (ตัวอย่าง: Library / Frameworks / IOKit.framework / IOKit) แม้ว่า ls -l0e จะไม่แสดงอะไรเลย คุณรู้ไหมว่าทำไม?
Simon

ฉันเพิ่งเห็นพวกเขาทั้งหมดอยู่ในไฟล์ * .framework ฉันสามารถลากพวกเขาไปที่ถังขยะด้วยตนเอง แต่ไม่ย้ายหรือลบผ่านเทอร์มินัล ฉันได้รับข้อผิดพลาด "ไม่อนุญาตการดำเนินการ" และ "ไดเรกทอรีไม่ว่างเปล่า"
Simon

ฮ่า ๆ , nvm, ฉันเพิ่งลากทั้งโฟลเดอร์ไปที่ถังขยะแล้วเททิ้ง ที่ได้ผล ฉันไม่เข้าใจว่าทำไมมันจึงใช้งานกับ Terminal ไม่ได้
Simon

3

สิ่งที่คุณถามคือการปิดใช้งานการสำรองข้อมูลท้องถิ่นใช่มั้ย หากต้องการทำสิ่งนี้ให้พิมพ์สิ่งนี้ในเทอร์มินัล:

sudo tmutil disablelocal

การสำรองข้อมูลในเครื่องจะหายไปและพื้นที่จะถูกสำรองไว้ (เช่นโฟลเดอร์ backups.backupdb)


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