Чому всі знімки монтуються та перераховуються як блокові пристрої чи розділи для Ubuntu 18.04?


21

За станом на Ubuntu 18.04 lsblkпоказано 16 коротких циклів (2-3 рази за кожне оснащення). Питання в тому, чому вони зазначаються як результати для lsblk, fdisf-l та blkid?

Це створює багато скупчень із фактичних розділів дискових дисків, які мені потрібно бачити, а саме / dev / розділи. Я знаю, що існує дубльований дублікат цього питання, але він запитує лише, чому три петлі відображаються за один момент. Хочу знати, чому ці знімки перераховані в першу чергу, і нібито дублікат не відповідає на це (можливо, ті, хто позначає це як дублікат, можуть допомогти мені, пояснивши, чому це дублікат). Технічно вони кваліфікуються як файлові системи (яких я ні створив, ні просив), але вони перешкоджають виведенню інформації для / dev / розділів, які мене цікавлять. Це стає проблемою, коли fdisk -l видає три сторінка + список, заповнений переважно знімками.

Вихід недавньої (1 тиждень) установки Ubuntu, і я не встановив жодних знімків:

$ 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 результатів:

Основні
гном-3-26-1604
гном-калькулятор
гном-символи
гном-журнали
гном-система-монітор

Тим часом, утиліта gnome-disk не показує взагалі нічого, лише показує мій жорсткий диск та оптичний привід.

Це буде не дуже ефективно, якщо кожен встановлений оснащення потрапить до списку як блочного пристрою (2-3 рази для додавання). Чи слід очікувати майбутніх оновлень, щоб вирішити це?

Редагувати:
fdisk-lтакож викидає дуже довгий список із 16 екземплярами цих "дискових циклів" (Disk / dev / loop0, Disk / dev / loop1 тощо), кожен із деталями, які я тут не показуватиму, оскільки він занадто довгий). Це не може бути призначена поведінка, чи не так?
blkidтакож вказано 16 циклів, як TYPE = "squashfs". Принаймні parted -lпрацює так, як і очікувалося, лише вивівши мої фактичні дискові розділи.

Я лише перевірив це, і встановлення більшої кількості знімків додає більше до виводу lsblk. Отже, fdisk, lsblk, blkid можуть мати потенційно величезні списки вихідних даних відповідно до кількості доступних знімків та встановлених файлів.


1
Я думаю, що фактична відповідь на ваше запитання полягає в цьому пов'язаному питанні: "Пакети Snap - це файлові системи squashfs. Єдиний спосіб доступу до знімків - це їх встановлення. Так, так, вони завжди будуть встановлені". askubuntu.com/questions/842093/… Боже, я б хотів, щоб їх не встановлювали!
craq

Відповіді:


10

Коли ви вводите команду

snap list 

ви отримаєте вихід фактично встановлених пакетів оснащення. Причина полягає в тому, що коли пакет оновлень оновлюється, зберігається стара версія (див. Snapcraft docu) .

Цитувати з snapcraft docu

Потім збирання сміття видаляє та очищує будь-які файли оснащення та їхні області для запису для оснащених версій до тієї, що нещодавно оновлена ​​- це означає, що в системі, щонайменше, будуть представлені дві версії оснащення. Це економить простір на диску, не порушуючи можливості повернути оснащення до попереднього відомого стану.

Явне видалення оснастки з вашої системи також видалить код і очистить дані для всіх попередніх версій.

Наприклад, ви встановили більше однієї версії калькулятора gnome .

Якщо вам потрібна лише найновіша версія, ви можете використовувати її

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

Використання команди

losetup -a 

показує змонтовані фіксатори (петлеві пристрої)

Якщо ви хочете видалити подвійні, введіть

sudo losetup -d /dev/loop<loopnumber>

Здається, це помилка оснащення коду, оскільки всі старіші зберігаються у файлі / var / lib / snapd / snaps.


1
sudo: remove: command not found і losetup -dнічого не змінює.
jordy

3
Правильний код - sudo snap removeні sudo remove. Перегляньте свою відповідь.
jordy

8

Із вмісту вашого запитання ваша проблема полягає у пошуку способу контролю над тим, що ви бачите при спробі перегляду блокових пристроїв, а не в тому, як оснастка використовує блокові пристрої для своєї роботи.

Я згоден з вашим посиланням на відмінність між fdisk -lта parted -l. Хоча fdisk показує дуже хороший детальний вихід блокових пристроїв, він показує занадто багато інших речей, які відволікають від того, що ви намагаєтесь бачити.

Дозвіл

Ви можете використовувати фільтрувати вихідний формат lsblk . Це добре працює, щоб отримати чистий вихід, як і те, що ви отримуєте з утилітою gnome-disk .

$ 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
@danthonyd Дякуємо за підтвердження. Я був впевнений, що розумію це питання і вважаю впевненим, що заслужив місце в базі даних АС для розгляду та відповіді. Це те, про що я хвилювався давно. Однак проблема не є Snap. Проблема в fdiskрозробниках. Вони повинні додати метод фільтрації реальних пристроїв через псевдопристрої, щоб видалити надмірний вихід та зробити їхнє додаток більш керованим, як утиліта Gnome-disk. Ніхто не використовує fdiskдля керування своїми петлевими пристроями. (продовження) ...
ЛД Джеймс

4
... (продовження) Їм навіть не потрібно бачити це у виході fdisk . Саме для цього і є команда losetup, і інші псевдокомандні програми. То чому б не турбуватися показувати це, якщо ви не можете керувати цим інструментом. Цей недолік в дизайні FDisk робить такі додатки , як проділ і lsblk більш популярним і дружнім до користувача.
ЛД Джеймс

1
Дякую. Я сьогодні додаю | egrep -v "^loop"всі мої lsblkсценарії 16.04, щоб зменшити обслуговування в день, коли я перетворюю на 18.04. (FYI, я вже відповідав за вашу відповідь до сьогодні)
WinEunuuchs2Unix

5

Мене це теж дратує. Здається, якщо вони не запущені, вони не повинні бути встановлені або внесені до списку. Ви можете запустити цю команду для виключення всіх циклічних пристроїв.

$ lsblk -e 7


1

Якщо ви використовуєте оснащену версію системного монітора, то ви побачите всі файлові системи, які використовуються оснащенням, а також ті, які ви використовуєте.

Просте "виправлення" - це видалення Gnome System Monitor з магазину додатків. Це оснащена версія.

Потім встановіть Gnome System Monitor із звичайних сховищ за допомогою диспетчера пакетів Synaptic. Це звичайна версія, яка встановлює купу файлів у всьому вашому кореневому розділі. Приємно!

І ви побачите саме те, що очікуєте побачити, коли запускаєте Gnome System Monitor ...


Чудово! Це те, що я шукав. Команди - це snap remove gnome-system-monitor(судо не потрібно), далі sudo apt install gnome-system-monitor(на цей раз із судо).
PerlDuck

0

Щоб показати лише кріплення, крім циклу зворотного зв'язку, ви також можете просто:

lsblk -af |grep -sv loop

;)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.