Mengapa semua terkunci dipasang dan terdaftar sebagai perangkat blok atau partisi untuk Ubuntu 18.04?

19

Pada berjalan Ubuntu 18,04 lsblkmenunjukkan 16 loop snap (2-3 kali untuk setiap snap). Pertanyaannya adalah, mengapa mereka terdaftar sebagai hasil untuk lsblk, fdisf-l, dan blkid?

Ini menciptakan banyak kekacauan dari partisi disk drive aktual yang perlu saya lihat, yaitu / dev / partisi. Saya tahu duplikat yang diklaim dari pertanyaan ini ada, tetapi hanya menanyakan mengapa tiga loop dicantumkan per snap. Saya ingin tahu mengapa terkunci ini terdaftar di tempat pertama, dan duplikat yang diklaim tidak menjawab ini (mungkin yang menandai ini sebagai duplikat dapat membantu saya dengan menjelaskan mengapa itu duplikat). Secara teknis, mereka memenuhi syarat sebagai sistem file (yang saya tidak buat atau minta), tetapi mereka menghalangi keluaran informasi untuk / dev / partisi yang saya minati. Ini menjadi masalah ketika fdisk -l mengeluarkan tiga halaman + daftar diisi terutama dengan buncis.

Output dari instalasi Ubuntu (1 minggu) baru-baru ini dan saya belum menginstal terkunci:

$ 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  

(tambahan tangkapan layar teks di atas):
screenshot.jpg

snap listAcara saya menunjukkan 6 hasil:

inti
gnome-3-26-1604
gnome-kalkulator
gnome-karakter
gnome-log
gnome-system-monitor

Sementara itu, gnome-disk-utility tidak menunjukkan apa-apa untuk snap, hanya menunjukkan HDD dan drive optik saya.

Ini tidak akan sangat efisien jika setiap snap yang diinstal terdaftar sebagai perangkat blok (masing-masing 2-3 kali ditambahkan). Haruskah saya mengharapkan pembaruan di masa depan untuk menangani hal ini?

Sunting:
fdisk-ljuga membuang daftar yang sangat panjang dengan 16 contoh "loop disk" ini (Disk / dev / loop0, Disk / dev / loop1, dll., Masing-masing dengan perincian yang tidak akan saya tampilkan di sini karena terlalu panjang). Ini bukan perilaku yang dimaksudkan, bukan?
blkidjuga mencantumkan 16 loop, sebagai TYPE = "squashfs". Setidaknya parted -lberfungsi seperti yang diharapkan, hanya mengeluarkan partisi disk saya yang sebenarnya.

Saya baru saja menguji ini, dan menginstal lebih banyak terkunci tidak menambahkan lebih banyak ke output lsblk. Oleh karena itu, fdisk, lsblk, blkid berpotensi memiliki daftar keluaran yang besar, sesuai dengan jumlah buncis yang tersedia, dan diinstal.

jordy
sumber
Saya pikir jawaban aktual untuk pertanyaan Anda adalah pada pertanyaan terkait ini: "Paket snap adalah sistem file squashfs. Satu-satunya cara untuk mengakses terkunci adalah dengan me-mount mereka. Jadi ya, mereka akan selalu dipasang." askubuntu.com/questions/842093/... Tuhan saya berharap mereka tidak perlu dipasang!
craq

Jawaban:

10

Saat Anda mengetik perintah

snap list 

Anda akan mendapatkan output dari paket snap yang diinstal sebenarnya. Alasannya adalah ketika paket snap diperbarui, versi lama disimpan (lihat dokumen snapcraft) .

Mengutip dari snapcraft docu

Pengumpulan sampah kemudian menghapus dan membersihkan semua file snap, dan area yang dapat ditulisi, untuk versi snap sebelum yang baru saja diperbarui - artinya, paling banyak, dua versi snap akan hadir di sistem. Ini menghemat ruang disk tanpa mengurangi kemampuan untuk mengembalikan snap ke kondisi sebelumnya yang dikenal baik.

Menghapus snap secara instan dari sistem Anda juga akan menghapus kode dan membersihkan data untuk semua versi sebelumnya.

Misalnya Anda telah menginstal lebih dari satu versi gnome-calculator .

Jika Anda hanya membutuhkan versi terbaru, Anda dapat menggunakannya

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

Menggunakan perintah

losetup -a 

menampilkan buncis terpasang (perangkat loop)

Jika Anda ingin menghapus yang ganda, ketikkan

sudo losetup -d /dev/loop<loopnumber>

Tampaknya ada kesalahan pada kode snap, karena semua yang lebih lama disimpan dalam file / var / lib / snapd / snaps.

abu_bua
sumber
1
sudo: remove: command not found dan losetup -dtidak mengubah apa pun.
jordy
3
Kode yang benar sudo snap removebukan sudo remove. Harap perbaiki jawaban Anda.
jordy
8

Dari konten dalam pertanyaan Anda, masalah Anda adalah tentang mencari cara untuk memiliki kontrol atas apa yang Anda lihat ketika Anda mencoba untuk melihat perangkat blok Anda daripada bagaimana snap menggunakan perangkat blok untuk operasinya.

Saya setuju dengan perbedaan referensi Anda antara fdisk -ldan parted -l. Walaupun fdisk menunjukkan output detail yang sangat baik dari perangkat blok, ia menunjukkan terlalu banyak hal lain yang mengalihkan perhatian dari apa yang Anda coba lihat.

Resolusi

Anda dapat menggunakan filter keluaran terformat lsblk . Ini berfungsi dengan baik untuk memberikan keluaran bersih seperti yang Anda dapatkan dengan utilitas gnome-disk .

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

Atau seperti yang Anda tunjukkan dalam pertanyaan Anda:

$ sudo parted -l

Untuk dfperintah dalam pertanyaan Anda, gunakan:

$ df | egrep -v /dev/loop
LD James
sumber
3
Saya menunggu lama bagi seseorang untuk menyarankan hal ini, sebuah output yang difilter untuk lsblk (daripada semua komentar yang membela output yang berlebihan sebagai normal dan baik). Saya ingin menghindari keharusan melakukan ini, hanya karena polos dan lurus lsblkcepat, mudah diingat, dan bekerja dengan baik, sebelum snap mengganggu itu. Saya ingin kembali seperti semula. Mudah-mudahan, output yang berlebihan hanyalah bug yang akan diperbaiki.
jordy
4
@danthonyd Terima kasih atas pengakuannya. Saya yakin saya mengerti pertanyaan itu dan merasa yakin itu layak mendapat tempat dalam database informasi AU untuk dipertimbangkan dan dijawab. Ini adalah sesuatu yang saya sudah khawatirkan sejak lama. Namun, masalahnya bukan Snap. Masalahnya dengan fdiskpengembang. Mereka harus menambahkan metode untuk menyaring perangkat nyata melalui perangkat semu untuk menghapus output yang berlebihan dan membuat aplikasi mereka lebih mudah dikelola, seperti utilitas Gnome-disk-utility. Tidak ada yang akan menggunakan fdiskuntuk mengelola perangkat loop mereka . (lanjutan) ...
LD James
4
... (lanjutan) Mereka bahkan tidak perlu melihatnya di keluaran fdisk . Itulah gunanya losetup dan perintah aplikasi semu lainnya . Jadi mengapa repot-repot menunjukkannya, jika Anda tidak bisa mengelolanya dengan alat ini. Kelemahan dalam desain fdisk ini membuat aplikasi seperti parted dan lsblk lebih populer dan ramah pengguna.
LD James
1
Terima kasih. Saya menambahkan | egrep -v "^loop"ke semua lsblkskrip 16,04 saya hari ini untuk mengurangi pemeliharaan pada hari saya mengonversi menjadi 18,04. (FYI saya sudah memilih kembali jawaban Anda sebelum hari ini)
WinEunuuchs2Unix
4

Saya menemukan ini menjengkelkan juga. Tampaknya jika mereka tidak berjalan mereka tidak boleh dipasang atau terdaftar. Anda dapat menjalankan perintah ini untuk mengecualikan semua perangkat loop.

$ lsblk -e 7

pengguna911218
sumber
1

Jika Anda menggunakan versi snap monitor sistem, maka Anda akan melihat semua sistem file yang digunakan snap serta yang Anda gunakan.

"Perbaikan" yang mudah adalah mencopot pemasangan Gnome System Monitor dari app store. Ini adalah versi snap.

Kemudian instal Monitor Sistem Gnome dari repositori normal menggunakan manajer paket Synaptic. Ini adalah versi normal yang menginstal banyak file di seluruh partisi root Anda. Bagus!

Dan Anda akan melihat apa yang Anda harapkan saat meluncurkan Gnome System Monitor ...

Anders Larsen
sumber
Bagus! Ini yang saya cari. Perintahnya adalah snap remove gnome-system-monitor(tidak perlu sudo), diikuti oleh sudo apt install gnome-system-monitor(kali ini dengan sudo).
PerlDuck
0

Untuk hanya menampilkan mount yang tidak termasuk loopback, Anda juga dapat:

lsblk -af |grep -sv loop

;)

jbrios777
sumber