Dlaczego wszystkie przystawki są montowane i wyświetlane jako urządzenia blokowe lub partycje dla Ubuntu 18.04?

21

Począwszy od wersji Ubuntu 18.04, działa lsblk16 pętli Snap (2-3 razy dla każdej przystawki). Pytanie brzmi: dlaczego są one wymienione jako wyniki dla lsblk, fdisf-l i blkid?

Tworzy to dużo bałaganu z rzeczywistych partycji dysków, które muszę zobaczyć, a mianowicie / dev / partitions. Wiem, że istnieje podobno duplikat tego pytania, ale pyta tylko, dlaczego wyświetlane są trzy pętle na przystawkę. Chcę przede wszystkim wiedzieć, dlaczego te przyciągania są wymienione, a rzekomy duplikat nie odpowiada na to pytanie (być może osoby oznaczające to jako duplikat mogłyby mi pomóc, wyjaśniając, dlaczego jest to duplikat). Technicznie kwalifikują się jako systemy plików (których nie utworzyłem ani nie poprosiłem), ale przeszkadzają w wyświetlaniu informacji o interesujących mnie partycjach / dev /. Staje się to problemem, gdy fdisk -l wypisuje trzy strona + lista wypełniona głównie snapami.

Dane wyjściowe ostatniej (1-tygodniowej) instalacji Ubuntu i nie zainstalowałem żadnych przystawek:

$ 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  

(dodatkowe zrzuty powyższego tekstu):
screenshot.jpg

Moje snap listpokazuje 6 wyników:

rdzeń
gnome-3-26-1604
gnome-kalkulator
gnome-znaki
gnome-logs
gnome-system-monitor

Tymczasem gnome-disk-utility nie pokazuje nic dla snapów, pokazuje tylko mój dysk twardy i napęd optyczny.

Nie będzie to bardzo wydajne, jeśli każda zainstalowana przystawka będzie wymieniona na liście jako urządzenie blokowe (2-3 razy każde do dodania). Czy powinienem oczekiwać, że przyszłe aktualizacje sobie z tym poradzą?

Edycja:
fdisk-lzrzuca również bardzo długą listę z 16 wystąpieniami tych „pętli dyskowych” (Disk / dev / loop0, Disk / dev / loop1 itd., Każda ze szczegółami, których tutaj nie pokażę, ponieważ są za długie). To nie może być zamierzone zachowanie, prawda?
blkidwyświetla również 16 pętli, ponieważ TYPE = "squashfs". Przynajmniej parted -ldziała zgodnie z oczekiwaniami, tylko outing moje rzeczywiste partycje dysku.

Właśnie to przetestowałem, a instalacja większej liczby snapów jeszcze bardziej zwiększa wydajność lsblk. Dlatego fdisk, lsblk, blkid mogą mieć potencjalnie ogromne listy wyników, zgodnie z liczbą dostępnych i zainstalowanych przystawek.

jordy
źródło
1
Myślę, że faktyczna odpowiedź na twoje pytanie brzmi: „Pakiety Snap to systemy plików squashfs. Jedynym sposobem na uzyskanie dostępu do snaps jest ich zamontowanie. Tak, zawsze będą one montowane”. askubuntu.com/questions/842093/... Boże, szkoda, że ​​nie musieli być zamontowani!
craq

Odpowiedzi:

10

Po wpisaniu polecenia

snap list 

otrzymasz dane wyjściowe faktycznie zainstalowanych pakietów Snap. Powodem jest to, że kiedy pakiet snap jest aktualizowany, stara wersja zostaje zachowana (patrz snapcraft docu) .

Cytowanie z snapcraft docu

Odśmiecanie usuwa następnie i usuwa wszystkie pliki przystawek oraz ich obszary zapisu w wersjach przystawek przed wersją, która właśnie została zaktualizowana - co oznacza, że ​​w systemie będą obecne co najwyżej dwie wersje przystawki. Oszczędza to miejsce na dysku bez uszczerbku dla możliwości przywrócenia przyciągania do poprzedniego stanu dobrego.

Jawne usunięcie przystawki z systemu spowoduje również usunięcie kodu i wyczyszczenie danych dla wszystkich poprzednich wersji.

Na przykład zainstalowałeś więcej niż jedną wersję kalkulatora gnome .

Jeśli potrzebujesz tylko najnowszej wersji, możesz użyć

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

Za pomocą polecenia

losetup -a 

pokazuje zamontowane zatrzaski (urządzenia pętlowe)

Jeśli chcesz usunąć podwójne, wpisz

sudo losetup -d /dev/loop<loopnumber>

Wydaje się, że jest to błąd kodu przyciągania, ponieważ wszystkie starsze były przechowywane w pliku / var / lib / snapd / snaps.

abu_bua
źródło
1
sudo: remove: command not found i losetup -dniczego nie zmienia.
jordy
3
Prawidłowy kod sudo snap removenie jest sudo remove. Popraw swoją odpowiedź.
jordy
8

Z treści twojego pytania wynika, że ​​Twoim problemem jest poszukiwanie sposobu kontrolowania tego, co widzisz, gdy próbujesz wyświetlić urządzenia blokowe, niż tego, w jaki sposób snap używa urządzeń blokowych do działania.

Zgadzam się z podanym przez ciebie rozróżnieniem między fdisk -li parted -l. Chociaż fdisk pokazuje bardzo dobre szczegółowe dane wyjściowe urządzeń blokowych, pokazuje zbyt wiele innych rzeczy, które odwracają uwagę od tego, co próbujesz zobaczyć.

Rozkład

Możesz użyć filtrowania wyjścia sformatowanego w lsblk . Działa to dobrze, dając czyste wyjście, takie jak to, co dostajesz z gnome-disk-utility .

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

Lub jak wskazałeś w swoim pytaniu:

$ sudo parted -l

Do dfpolecenia w pytaniu użyj:

$ df | egrep -v /dev/loop
LD James
źródło
3
Długo czekałem, aż ktoś zasugeruje dokładnie to, przefiltrowane wyjście dla lsblk (zamiast wszystkich komentarzy broniących nadmiernego wyjścia jako normalne i dobre). Chciałbym jednak tego nie robić, tylko dlatego, że proste i proste lsblkbyły szybkie, łatwe do zapamiętania i działały pięknie, zanim Snap wtrącił się w to. Chcę to z powrotem jak było. Mamy nadzieję, że nadmierna wydajność jest tylko błędem, który zostanie naprawiony.
jordy
4
@danthonyd Dzięki za potwierdzenie. Byłem pewien, że zrozumiałem pytanie i czułem, że zasługuje na miejsce w bazie danych AU do rozważenia i udzielenia odpowiedzi. Martwiłem się o to od dłuższego czasu. Problemem nie jest jednak Snap. Problem dotyczy fdiskprogramistów. Powinny dodać metodę filtrowania rzeczywistych urządzeń przez pseudo urządzenia, aby usunąć nadmierne dane wyjściowe i ułatwić zarządzanie aplikacjami, na przykład narzędzie Gnome-disk-utility. Nikt nie używałby ich fdiskdo zarządzania urządzeniami w pętli . (ciąg dalszy) ...
LD James
4
... (ciąg dalszy) Nie muszą nawet widzieć tego na wyjściu fdisk . Do tego właśnie służą polecenia losetup i inne pseudo- aplikacje. Więc po co zawracać sobie głowę pokazywaniem tego, jeśli nie możesz nim zarządzać za pomocą tego narzędzia. Ta wada w projekcie fdisk sprawia, że ​​aplikacje takie jak parted i lsblk są bardziej popularne i przyjazne dla użytkownika.
LD James
1
Dziękuję Ci. Dodaję | egrep -v "^loop"do wszystkich moich 16.04 lsblkskryptów dzisiaj zredukować konserwację nawróconego dnia do 18.04. (Do Twojej wiadomości już wcześniej głosowałem na twoją odpowiedź)
WinEunuuchs2Unix
5

Uważam to również za denerwujące. Wydaje się, że jeśli nie są uruchomione, nie należy ich montować ani umieszczać na liście. Możesz uruchomić to polecenie, aby wykluczyć wszystkie urządzenia pętli.

$ lsblk -e 7

użytkownik911218
źródło
1

Jeśli użyjesz wersji Snap Monitora systemu, zobaczysz wszystkie systemy plików używane przez Snap oraz te, których używasz.

Łatwą „poprawką” jest odinstalowanie Gnome System Monitor ze sklepu z aplikacjami. To jest wersja przystawki.

Następnie zainstaluj Gnome System Monitor ze zwykłych repozytoriów za pomocą menedżera pakietów Synaptic. Jest to normalna wersja, która instaluje kilka plików na całej partycji głównej. Ładny!

I zobaczysz dokładnie to, czego oczekujesz po uruchomieniu Gnome System Monitor ...

Anders Larsen
źródło
Świetny! Właśnie tego szukałem. Polecenia to snap remove gnome-system-monitor(nie wymaga sudo), a następnie sudo apt install gnome-system-monitor(tym razem z sudo).
PerlDuck,
0

Aby wyświetlić tylko wierzchowce bez pętli zwrotnej, możesz po prostu:

lsblk -af |grep -sv loop

;)

jbrios777
źródło