อูบุนตูบ่นว่าระบบไฟล์รูทของฉันเกือบเต็มแล้ว แต่เมื่อฉันใช้baobab
(หรือที่รู้จักว่า "Disk Usage Analyzer") หรือdu -h
จะสรุปการใช้งานของระบบไฟล์ที่เมาท์อื่น ๆ ทั้งหมดได้เช่นกัน
ฉันจะแยกระบบไฟล์อื่นที่ติดตั้งในไดเรกทอรีย่อยที่หลากหลายได้อย่างไร
อูบุนตูบ่นว่าระบบไฟล์รูทของฉันเกือบเต็มแล้ว แต่เมื่อฉันใช้baobab
(หรือที่รู้จักว่า "Disk Usage Analyzer") หรือdu -h
จะสรุปการใช้งานของระบบไฟล์ที่เมาท์อื่น ๆ ทั้งหมดได้เช่นกัน
ฉันจะแยกระบบไฟล์อื่นที่ติดตั้งในไดเรกทอรีย่อยที่หลากหลายได้อย่างไร
คำตอบ:
baobab:
หากคุณต้องการใช้ baobab สิ่งนี้สามารถทำได้โดยการติดตั้งระบบไฟล์รูทในที่อื่นและวิเคราะห์ ด้วยวิธีนี้ระบบไฟล์อื่น ๆ จะไม่ถูกเมาท์ในรูทเมาท์ใหม่และไฟล์ใด ๆ ที่ซ่อนโดยเมาท์ภายใต้/
จะถูกเปิดเผยและนับในการวิเคราะห์ของคุณ
สมมติว่าระบบไฟล์รูทของคุณเปิดอยู่sda1
( df
จะแจ้งให้ทราบว่าเป็นอุปกรณ์ใด):
mkdir root-rebound
sudo mount /dev/sda1 root-rebound
baobab root-rebound
และทำให้เป็นระเบียบเมื่อคุณทำเสร็จ:
sudo umount root-rebound
rmdir root-rebound
หรือคุณสามารถเลิกเมานท์ระบบไฟล์ด้วยตนเองได้ คุณสามารถสแกนเฉพาะโฟลเดอร์ภายในบ้านของคุณได้เนื่องจากส่วนใหญ่จะมีแหล่งที่มาของการใช้พื้นที่ดิสก์มากเกินไป
duมีสองตัวเลือกที่สามารถป้องกันการนับระบบไฟล์อื่น ๆ :
-x, --one-file-system skip directories on different file systems --exclude=PATTERN exclude files that match PATTERN
ดังนั้น,
du -hx
จะเพิกเฉยต่อระบบไฟล์ที่เมาท์อื่น ๆ หรือ
du -h --exclude /media
จะไม่สนใจไฟล์ทั้งหมด/media
ที่มีการติดตั้งระบบไฟล์ส่วนใหญ่
หากคุณใช้du
การเรียงลำดับเพื่อให้สิ่งที่ยิ่งใหญ่ที่สุดปรากฏที่ด้านล่างของรายการสามารถช่วยถอดรหัสเอาต์พุตได้ เช่น:
du -hx | sort -h
du -kx | sort -n
เป็นวิธีของฉัน
ขึ้นอยู่กับประเภทของระบบไฟล์ที่คุณอาจไม่ได้รับอนุญาตให้เมานต์ระบบไฟล์รูทบนจุดเมาน/
ต์ด้านล่าง คุณจะได้อะไรทำนองนี้:
mount: /dev/sda1 already mounted or /mnt busy
mount: according to mtab, /dev/sda1 is mounted on /
การติดตั้งแบบอ่านอย่างเดียว ( -o ro
) อาจช่วยได้ หากสิ่งนั้นล้มเหลวให้ใช้การเชื่อมติด:
mount --bind / /mnt
เมื่อติดตั้งแล้วให้ใช้เครื่องมืออะไรก็ได้ในการวิเคราะห์การใช้ดิสก์เช่น du -sh * | sort -h
รายงานข้อผิดพลาดนี้อธิบายถึงความเป็นไปได้ในการกำหนดค่า baobab เพื่อละเว้นไดเรกทอรี แต่น่าเสียดายที่คุณไม่สามารถทำมันได้ภายใน app ตัวเอง แต่คุณต้องใช้และเปิดdconf-editor
org.gnome.baobab.preferences
ที่นี่คุณจะได้พบกับรายการexcluded-uris
; เปลี่ยนเป็น['file:///path/to/ignore']
(ทำงานกับอัญประกาศเดียวสำหรับฉัน)
Baobabพยายามที่จะให้คุณควบคุมของอุปกรณ์ / พาร์ทิชันที่คุณสแกน - Edit->Preferences
ไปที่ โดยทั่วไปคุณต้องการสแกนอุปกรณ์ที่ Mount Point /
เท่านั้น สิ่งนี้ไม่รู้จักลิงก์ / mounts / bindings ทุกประเภทดังนั้นท้ายที่สุด Baobab อาจยังให้ผลลัพธ์ที่สับสนหากคุณมีการกำหนดค่าที่ไม่สำคัญ
สำหรับdu
ฟังก์ชันเชลล์ต่อไปนี้ที่เรียกว่าdutop
จะแสดงระดับบนสุดของโฟลเดอร์ที่ระบุ (หรือโฟลเดอร์ปัจจุบัน) ด้วยวิธีนี้คุณสามารถตรวจสอบโฟลเดอร์ย่อยทีละรายการ
function dutop() { du --max-depth=1 --one-file-system -h $@ |sort -h; }
สิ่งนี้น่าจะรายงานข้อผิดพลาด "การอนุญาตที่ถูกปฏิเสธ" ที่ไม่สำคัญหากคุณนำไปใช้/
แต่คุณสามารถแก้ไขข้อผิดพลาดบางอย่างเช่นต่อไปนี้ซึ่งจะขอรหัสผ่านของคุณ
function sudutop() { sudo du --max-depth=1 --one-file-system -h $@ |sort -h; }
สำหรับโฟลเดอร์ขนาดใหญ่อาจใช้เวลาสักครู่ พวกเขาจะไม่รายงานสถานะที่เพิ่มขึ้นใด ๆ เนื่องจากการดำเนินการเรียงลำดับกำลังบัฟเฟอร์ผลลัพธ์ระดับกลางทั้งหมด การยกเลิกด้วย Ctrl-C นั้นเป็นเรื่องปกติถ้าคุณเหนื่อยกับการรอ
du -hx | sort -h
แม้ว่า baobab จะตีความได้ง่ายกว่า