เหตุใด snaps ทั้งหมดจึงถูกเมานต์และแสดงรายการเป็นอุปกรณ์บล็อกหรือพาร์ติชันสำหรับ Ubuntu 18.04


19

ในขณะที่การทำงานของ Ubuntu 18.04 lsblkแสดงว่ามี snap snap 16 ครั้ง (2-3 ครั้งต่อการ snap แต่ละครั้ง) คำถามคือทำไมพวกเขาถูกระบุว่าเป็นผลลัพธ์สำหรับ lsblk, fdisf-l และ blkid?

มันสร้างความยุ่งเหยิงมากมายจากพาร์ติชั่นดิสก์จริงที่ฉันต้องการดูนั่นคือ / dev / พาร์ติชั่น ฉันรู้ว่ามีคำถามซ้ำกันที่อ้างว่ามีอยู่จริง แต่จะถามเฉพาะสาเหตุที่แสดงรายการวนซ้ำสามรายการต่อหนึ่งครั้ง ฉันต้องการทราบว่าเหตุใดภาพรวมเหล่านี้จึงปรากฏในที่แรกและสำเนาที่อ้างว่าไม่ตอบคำถามนี้ (บางทีข้อความที่ทำเครื่องหมายว่าซ้ำกันอาจช่วยฉันได้ด้วยการอธิบายว่าทำไมจึงซ้ำกัน) ในทางเทคนิคแล้วพวกเขามีคุณสมบัติเป็นระบบไฟล์ (ซึ่งฉันไม่ได้สร้างหรือขอ) แต่พวกเขากำลังได้รับในทางของการส่งออกข้อมูลสำหรับ / dev / พาร์ทิชันที่ฉันสนใจสิ่งนี้กลายเป็นปัญหาเมื่อ fdisk -l หน้า + รายการส่วนใหญ่เต็มไปด้วย snaps

ผลลัพธ์ของการติดตั้ง Ubuntu ล่าสุด (1 สัปดาห์) และฉันยังไม่ได้ติดตั้ง snaps ใด ๆ :

$ lsblk  
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT  
loop0    7:0    0  14.5M  1 loop /snap/gnome-logs/37  
loop1    7:1    0   2.3M  1 loop /snap/gnome-calculator/170  
loop2    7:2    0  86.6M  1 loop /snap/core/4486  
loop3    7:3    0  86.6M  1 loop /snap/core/4650  
loop4    7:4    0   1.6M  1 loop /snap/gnome-calculator/154  
loop5    7:5    0  14.5M  1 loop /snap/gnome-logs/34  
loop6    7:6    0   3.3M  1 loop /snap/gnome-system-monitor/36  
loop7    7:7    0   2.3M  1 loop /snap/gnome-calculator/178  
loop8    7:8    0    13M  1 loop /snap/gnome-characters/101  
loop9    7:9    0   3.7M  1 loop /snap/gnome-system-monitor/45  
loop10   7:10   0 139.5M  1 loop /snap/gnome-3-26-1604/64  
loop11   7:11   0   140M  1 loop /snap/gnome-3-26-1604/59   
loop12   7:12   0   3.7M  1 loop /snap/gnome-system-monitor/41  
loop13   7:13   0    21M  1 loop /snap/gnome-logs/25  
loop14   7:14   0  12.2M  1 loop /snap/gnome-characters/69  
loop15   7:15   0    13M  1 loop /snap/gnome-characters/96  
sda      8:0    0 298.1G  0 disk  
├─sda1   8:1    0   512M  0 part /boot/efi  
└─sda2   8:2    0 297.6G  0 part /  
sr0     11:0    1  1024M  0 rom  

(การจับภาพหน้าจอเพิ่มเติมของข้อความด้านบน):
screenshot.jpg

snap listผลลัพธ์ของฉันแสดง 6:

core
gnome-3-26-1604
gnome-calculator
gnome-characters
gnome-logs
gnome-system-monitor

ในขณะเดียวกัน gnome-disk-utility ไม่แสดงอะไรเลยสำหรับ snaps แต่แสดง HDD และออปติคัลไดรฟ์ของฉันเท่านั้น

มันจะไม่มีประสิทธิภาพมากนักหากสแน็ปที่ติดตั้งทุกตัวถูกแสดงเป็นอุปกรณ์บล็อก (เพิ่ม 2-3 ครั้งในแต่ละครั้ง) ฉันควรคาดหวังการอัปเดตในอนาคตเพื่อจัดการกับปัญหานี้หรือไม่

แก้ไข:
fdisk-lทิ้งรายการยาวมากด้วย 16 อินสแตนซ์ของ "ดิสก์ลูป" (Disk / dev / loop0, Disk / dev / loop1 ฯลฯ แต่ละรายการมีรายละเอียดซึ่งฉันจะไม่แสดงที่นี่เพราะมันยาวเกินไป) สิ่งนี้ไม่สามารถทำงานได้ตามต้องการใช่ไหม
blkidนอกจากนี้ยังแสดงรายการ 16 ลูปเป็น TYPE = "squashfs" อย่างน้อยก็parted -lทำงานได้ตามที่คาดไว้การออกนอกพาร์ติชั่นดิสก์จริงของฉันเท่านั้น

ฉันเพิ่งทดสอบสิ่งนี้และการติดตั้งสแนปเพิ่มเติมจะเพิ่มเอาต์พุต lsblk ให้มากขึ้น ดังนั้น fdisk, lsblk, blkid อาจมีรายการเอาท์พุทขนาดใหญ่ที่อาจเกิดขึ้นตามจำนวนของ snaps ที่มีอยู่และติดตั้ง


ฉันคิดว่าคำตอบที่แท้จริงสำหรับคำถามของคุณอยู่ที่คำถามที่เกี่ยวข้องนี้: "แพคเกจ Snap เป็นระบบไฟล์ squashfs วิธีเดียวในการเข้าถึง snaps คือการเมานต์พวกเขาดังนั้นใช่พวกเขาจะถูกเมาท์เสมอ" askubuntu.com/questions/842093/… พระเจ้าฉันหวังว่าพวกเขาจะไม่ต้องถูกติดตั้ง!
craq

คำตอบ:


10

เมื่อคุณพิมพ์คำสั่ง

snap list 

คุณจะได้รับผลลัพธ์ของแพ็คเกจ snap ที่ติดตั้งจริง เหตุผลก็คือเมื่อแพคเกจสแน็ปมีการปรับปรุงรุ่นเก่าจะถูกเก็บไว้(ดู snapcraft docu)

อ้างอิงจาก snapcraft docu

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

การลบสแน็ปออกจากระบบของคุณอย่างชัดเจนจะเป็นการลบรหัสและกำจัดข้อมูลสำหรับรุ่นก่อนหน้าทั้งหมด

ตัวอย่างเช่นคุณได้มีการติดตั้งมากกว่าหนึ่งรุ่นของgnome-เครื่องคิดเลข

ในกรณีที่คุณต้องการรุ่นใหม่ล่าสุดเท่านั้นคุณสามารถใช้

sudo snap remove gnome-calculator --revision <verison to be placed>

การใช้คำสั่ง

losetup -a 

แสดงให้เห็นว่าคุณติดยึด (อุปกรณ์ห่วง)

หากคุณต้องการลบรายการที่สองให้พิมพ์

sudo losetup -d /dev/loop<loopnumber>

ดูเหมือนว่าจะเป็นข้อผิดพลาดของรหัส snap เนื่องจากเก่ากว่าทั้งหมดถูกเก็บไว้ในไฟล์ / var / lib / snapd / snaps


1
sudo: remove: command not found และlosetup -dไม่มีอะไรเปลี่ยนแปลง
jordy

3
รหัสที่ถูกต้องคือไม่ได้sudo snap remove sudo removeโปรดแก้ไขคำตอบของคุณ
jordy

8

จากเนื้อหาในคำถามของคุณปัญหาของคุณคือการค้นหาวิธีที่จะควบคุมสิ่งที่คุณเห็นเมื่อคุณพยายามดูอุปกรณ์บล็อกของคุณมากกว่าวิธีที่ snap ใช้อุปกรณ์บล็อกสำหรับการทำงาน

ผมเห็นด้วยกับความแตกต่างระหว่างการอ้างอิงของคุณและfdisk -l parted -lแม้ว่าfdiskจะแสดงรายละเอียดของอุปกรณ์บล็อกที่มีรายละเอียดที่ดีมาก แต่มันก็แสดงให้เห็นสิ่งต่าง ๆ มากมายที่เบี่ยงเบนความสนใจของคุณ

มติ

คุณสามารถใช้ตัวกรองเอาต์พุตที่จัดรูปแบบlsblk นี้ทำงานได้ดีที่จะให้ผลผลิตที่สะอาดเหมือนสิ่งที่คุณได้รับกับgnome-ดิสก์ยูทิลิตี้

$ lsblk -o name,mountpoint,label,size,fstype,uuid | egrep -v "^loop"

หรือตามที่คุณระบุไว้ในคำถามของคุณ:

$ sudo parted -l

สำหรับdfคำสั่งในคำถามของคุณใช้:

$ df | egrep -v /dev/loop

3
ฉันรอเป็นเวลานานสำหรับบางคนที่จะแนะนำสิ่งนี้ผลลัพธ์ที่ถูกกรองสำหรับ lsblk (แทนที่จะเป็นความคิดเห็นทั้งหมดที่ปกป้องเอาต์พุตที่มากเกินไปตามปกติและดี) ฉันต้องการหลีกเลี่ยงการทำเช่นนี้เพียงเพราะธรรมดาและตรงไปตรงมาlsblkรวดเร็วจดจำง่ายและทำงานได้อย่างสวยงามก่อนที่จะเข้ามายุ่งกับมัน ฉันต้องการมันกลับมาเหมือนเดิม หวังว่าผลลัพธ์ที่มากเกินไปเป็นเพียงข้อผิดพลาดที่จะได้รับการแก้ไข
jordy

4
@donyonyd ขอบคุณสำหรับการยอมรับ ฉันแน่ใจว่าฉันเข้าใจคำถามและรู้สึกมั่นใจว่าสมควรได้รับข้อมูลในฐานข้อมูล AU สำหรับการพิจารณาและตอบคำถาม นี่คือสิ่งที่ฉันกังวลมาเป็นเวลานาน อย่างไรก็ตามปัญหาไม่ใช่ Snap ปัญหาเกิดขึ้นกับผู้fdiskพัฒนา พวกเขาควรเพิ่มวิธีการกรองอุปกรณ์จริงผ่านอุปกรณ์หลอกเพื่อลบเอาต์พุตที่มากเกินไปและทำให้แอปพลิเคชันสามารถจัดการได้ง่ายขึ้นเช่น Gnome-disk-utility ไม่มีใครจะใช้fdiskจัดการอุปกรณ์ลูปของพวกเขา (ต่อ) ...
LD James

4
... (ต่อ) พวกเขาไม่จำเป็นต้องเห็นมันในเอาต์พุตfdisk นั่นคือสิ่งที่losetupและคำสั่งแอปพลิเคชันหลอกใช้สำหรับ เหตุใดจึงต้องแสดงมันถ้าคุณไม่สามารถจัดการมันด้วยเครื่องมือ ข้อบกพร่องในการออกแบบ fdisk นี้ทำให้แอพพลิเคชั่นแบบแยกส่วนและlsblk ได้รับความนิยมมากขึ้นและใช้งานง่ายขึ้น
LD James

1
ขอขอบคุณ. ฉันเพิ่มสคริปต์| egrep -v "^loop"ทั้งหมดของฉันlsblkวันนี้เพื่อลดการบำรุงรักษาในวันที่ฉันแปลงเป็น 18.04 (FYI ฉันได้รับการโหวตคำตอบของคุณก่อนวันนี้แล้ว)
WinEunuuchs2Unix

5

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

$ lsblk -e 7


1

หากคุณใช้เวอร์ชัน snap ของการตรวจสอบระบบคุณจะเห็นระบบไฟล์ทั้งหมดที่ใช้โดย snap รวมถึงระบบที่คุณใช้

"แก้ไข" ที่ง่ายคือการถอนการติดตั้ง Gnome System Monitor จาก app store มันเป็นเวอร์ชั่น snap

จากนั้นติดตั้ง Gnome System Monitor จากที่เก็บปกติโดยใช้ตัวจัดการแพคเกจ Synaptic เป็นเวอร์ชันปกติที่ติดตั้งไฟล์จำนวนมากทั่วพาร์ติชันรูทของคุณ ดี!

และคุณจะเห็นสิ่งที่คุณคาดหวังเมื่อคุณเปิดใช้งาน Gnome System Monitor ...


ที่ดี! นี่คือสิ่งที่ฉันกำลังมองหา คำสั่งคือsnap remove gnome-system-monitor(ไม่ต้องใช้ sudo) ตามด้วยsudo apt install gnome-system-monitor(เวลานี้ด้วย sudo)
PerlDuck

0

หากต้องการแสดงเฉพาะการเมานต์ที่ไม่รวมลูปแบ็คคุณสามารถทำได้ง่ายๆดังนี้:

lsblk -af |grep -sv loop

;)

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