การลบ apt-snapshot- * ปลอดภัยหรือไม่?


8

ฉันคิดว่าฉันทำผิดพลาดเมื่อฉันตัดสินใจใช้ Btrfs ฉันไม่ได้ใช้คุณสมบัติใด ๆ แต่ตอนนี้มีปัญหาเกี่ยวกับพื้นที่ไม่เพียงพอ ฉันทำ

sudo btrfs balance start / -v

ตามที่แนะนำในบางแหล่ง แต่ก็ยังมีพื้นที่ว่างน้อย:

$ sudo btrfs fi df /    
Data, single: total=102.00GiB, used=99.55GiB
System, single: total=32.00MiB, used=16.00KiB
Metadata, single: total=2.00GiB, used=762.44MiB
unknown, single: total=256.00MiB, used=0.00

แหล่งที่มาแสดงให้เห็นภาพรวมลบ ฉันพบหนึ่งผู้สมัคร:

$ sudo btrfs subvolume list /
ID 257 gen 390597 top level 5 path @
ID 258 gen 390597 top level 5 path @home
ID 317 gen 390480 top level 5 path @apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40

การลบส@apt-snapshot-release-upgrade-utopic-*แนปชอตนั้นปลอดภัยหรือไม่?

หมายเหตุ: ฉันกำลังใช้ eCryptFS (ไม่แน่ใจว่านี่เป็นเรื่องในกรณีนี้)

คำตอบ:


5

ผมเคยเห็นจำนวนมากของบทเรียนเกี่ยวกับวิธีการที่จะย้อนกลับไปยังหนึ่งในภาพรวมเหล่านี้ แต่ในรุ่นใหม่ของอูบุนตู (การทดสอบเกี่ยวกับ 15.04), คุณ nolonger apt-btrfs-snapshotจำเป็นที่จะต้องติดตั้งระบบแฟ้มที่จะย้อนกลับไปยังภาพรวมที่สร้างขึ้นผ่าน

อีกครั้งให้รันคำสั่งเหล่านี้จากระบบที่กำลังรันไม่ใช่พาร์ติชันที่เมาท์ตามปกติเมื่อจัดการสแน็ปช็อต btrfs

เพิ่งรัน:

sudo apt-btrfs-snapshot list

เพื่อแสดงรายการสแน็ปช็อตที่มีอยู่จากนั้นเรียกใช้สิ่งต่อไปนี้เพื่อเปลี่ยนกลับเป็นสแน็ปช็อตที่เก่ากว่า:

sudo apt-btrfs-snapshot set-default @<name-of-snapshot>

สำหรับกรณีนี้คุณอาจต้องการตั้งค่าเริ่มต้นเป็นสแนปชอตที่มีอยู่

รีบูตเครื่องเพื่อให้การเปลี่ยนแปลงมีผล

นอกจากนี้การลบสแนปชอตก็น่าเชื่อถือและง่ายขึ้นมาก อีกครั้งเพื่อแสดงรายการภาพรวมรัน:

sudo apt-btrfs-snapshot list

จากนั้นหากต้องการลบสแนปชอตให้รัน:

sudo apt-btrfs-snapshot delete @<name-of-snapshot>

หากต้องการแสดงรายการตามวันที่เก่ากว่าสองวันให้รัน:

sudo apt-btrfs-snapshot list-older-than 2d

หากต้องการลบสแน็ปช็อตทั้งหมดที่เก่ากว่าสองวันให้รัน:

sudo apt-btrfs-snapshot delete-older-than 2d

สิ่งที่ยอดเยี่ยมคือการที่ค่าเริ่มต้นเก่าของคุณจะไม่ถูกลบดังนั้นคุณยังสามารถย้อนกลับไปที่ค่านั้นหากคุณมีหนึ่งชุด

การลบสแนปชอตควรมีผลทันที


หากคุณได้รับข้อผิดพลาด "no space on device" หลังจากบู๊ตคุณสามารถแนบ pendrive USB หรือไดรฟ์ภายนอกและใช้บรรทัดคำสั่งเพื่อต่อไดร์ฟที่ / tmp

หลังจากติดตั้งไดรฟ์ที่ / tmp คุณควรมีพื้นที่ว่างเพียงพอในการทำงาน:

sudo apt-btrfs-snapshot delete-older-than 

1

ดูเหมือนว่าจะปลอดภัย ฉันเคยเห็นความพยายามอื่น ๆ ที่ จะทำเช่นนี้และมันก็ไม่ใช่เรื่องง่าย

ขั้นแรกให้รันคำสั่งต่อไปนี้เพื่อดูว่าพาร์ติชันใดเป็นพาร์ติชั่น btrfs ของคุณ (สมมติว่าคุณมีพาร์ติชัน btrfs เพียงพาร์ติชันเดียว):

lsblk -o NAME,FSTYPE | grep btrfs| grep -o sda.

ตัวอย่างต่อไปนี้ใช้/dev/sda3เป็นตัวอย่าง

นี่คือวิธีที่ฉันทำ:

# mkdir /mnt/tmp
# mount /dev/sda3 /mnt/tmp
# ls /mnt/tmp         
@  
@apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40  
@home

นี่คือพาร์ติชั่นที่ถูกต้อง:

# btrfs subvol delete /mnt/tmp/@apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40 
Transaction commit: none (default)
Delete subvolume '/mnt/tmp/@apt-snapshot-release-upgrade-utopic-2014-10-23_20:38:40'

# btrfs subvol list /
ID 257 gen 397869 top level 5 path @
ID 258 gen 397869 top level 5 path @home

มีพื้นที่ว่างไม่มาก:

vic-UX32VD# df
Filesystem         1K-blocks      Used Available Use% Mounted on
/dev/sda3          120729076 117384216   1996232  99% /

การรีสตาร์ทช่วย:

Filesystem         1K-blocks      Used Available Use% Mounted on
/dev/sda3          120729076 109894736   9187296  93% /

อาจต้องการ HDD ที่มีขนาดใหญ่กว่า)
seanlano

1
@ seanlano ฉันมี SSD ซึ่งมีราคาแพงสำหรับขนาดที่ใหญ่กว่า
warvariuc

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