왜 모든 스냅이 Ubuntu 18.04의 블록 장치 또는 파티션으로 마운트되고 나열됩니까?


19

Ubuntu 18.04부터 lsblk16 개의 스냅 루프가 표시됩니다 (각 스냅마다 2-3 회). 문제는 왜 lsblk, fdisf-l 및 blkid의 결과로 나열됩니까?

실제 디스크 드라이브 파티션, 즉 / dev / 파티션에서 많은 혼란을 만듭니다. 나는이 질문의 중복 된 사본이 존재한다는 것을 알고 있지만 스냅 당 세 개의 루프가 나열되는 이유 만 묻습니다. 이 스냅이 왜 처음에 나열되는지 알고 싶은데, 복제 된 복제본이 이것에 응답하지 않습니다 (아마도 복제본으로 표시 한 복제본이 복제 본인 이유를 설명하면 도움이 될 수 있습니다). 기술적으로는 파일 시스템 (제작하거나 요청하지 않은)으로 자격이 있지만 관심있는 / dev / 파티션에 대한 정보 출력을 방해하고 있습니다. fdisk -l이 3을 출력 할 때 문제가됩니다. 페이지 + 목록은 주로 스냅으로 채워져 있습니다.

최근 (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-utility는 스냅에 대해 아무 것도 표시하지 않으며 HDD 및 광 드라이브 만 표시합니다.

설치된 모든 스냅이 블록 장치 (각각 2 ~ 3 번)로 나열되면 매우 효율적이지 않습니다. 향후 업데이트에서이 문제를 해결해야합니까?

편집 :
fdisk-l또한이 "디스크 루프"의 16 인스턴스 (디스크 / dev / loop0, 디스크 / dev / loop1 등)가있는 매우 긴 목록을 덤프합니다 (각각 너무 길어서 여기에 표시되지 않는 세부 사항 포함). 이것은 의도 된 행동이 아닌가?
blkid또한 TYPE = "squashfs"로 16 개의 루프를 나열합니다. 적어도 parted -l실제 디스크 파티션을 제외하고는 예상대로 작동합니다.

방금 이것을 테스트했으며 더 많은 스냅을 설치하면 lsblk 출력에 더 많은 것이 추가됩니다. 따라서 fdisk, lsblk, blkid는 사용 가능한 스냅 수에 따라 잠재적으로 큰 출력 목록을 가질 수 있으며 설치됩니다.


귀하의 질문에 대한 실제 답변은 "스냅 패키지는 squashfs 파일 시스템입니다. 스냅에 액세스하는 유일한 방법은 스냅에 액세스하는 것입니다. 따라서 항상 마운트됩니다." askubuntu.com/questions/842093/… 하나님 나는 그들이 마운트 할 필요가 없었 으면 좋겠다!
craq

답변:


10

명령을 입력하면

snap list 

실제 설치된 스냅 패키지의 출력을 얻게됩니다. 그 이유는 스냅 패키지가 업데이트되고 이전 버전이 유지 되기 때문입니다 (snapcraft docu 참조) .

Snapcraft Docu에서 인용

그런 다음 가비지 콜렉션은 방금 업데이트 된 버전 이전의 스냅 버전에 대한 모든 스냅 파일 및 해당 쓰기 가능 영역을 제거하고 제거합니다. 즉, 시스템에 최대 두 가지 버전의 스냅이 존재합니다. 이렇게하면 스냅을 이전의 정상 상태로 되돌릴 수있는 기능을 손상시키지 않으면 서 디스크 공간이 절약됩니다.

시스템에서 스냅을 명시 적으로 제거하면 코드가 제거되고 모든 이전 버전의 데이터가 제거됩니다.

예를 들어, 여러 버전의 gnome-calculator를 설치했습니다. .

최신 버전 만 필요한 경우 사용할 수 있습니다

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 2016 년

3
올바른 코드가 sudo snap remove아닙니다 sudo remove. 답을 수정하십시오.
jordy 2016 년

8

질문의 내용에서 문제는 snap이 블록 장치를 사용하여 동작하는 방법보다 블록 장치를 보려고 할 때 표시되는 내용을 제어 할 수있는 방법을 찾는 것입니다.

나는 사이에 참조 구분에 동의 fdisk -l하고 parted -l. 동안 의 fdisk 프로그램 블록 장치의 아주 좋은 자세한 출력은, 당신이 무슨 말을 하려는지에서 혼란이 보는 것을 너무 많은 다른 것들을 보여줍니다.

해결

lsblk 형식 출력을 필터링 할 수 있습니다 . 이것은 gnome-disk-utility로 얻는 것과 같은 깨끗한 출력을 제공하는 데 효과적 입니다.

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

또는 귀하의 질문에 표시된 바와 같이 :

$ sudo parted -l

df질문 의 명령에 다음을 사용하십시오.

$ df | egrep -v /dev/loop

3
나는 누군가가 정확하게 이것을 제안하기를 오랫동안 기다렸다. lsblk에 대한 필터링 된 출력 (모든 주석이 정상적이고 좋은 것으로 과도한 의견을 피하기보다는). 그러나 평범하고 똑 바른 lsblk것이 빠르고 기억하기 쉬우 며 스냅이 방해하기 전에 아름답게 작동 했기 때문에이 작업을 피하고 싶습니다 . 나는 그것을 다시 원한다. 바라건대, 과도한 출력은 버그로 수정 될뿐입니다.
jordy 2016 년

4
@danthonyd 감사합니다. 나는 그 질문을 이해하고 그것이 AU 데이터베이스에서 고려 및 답변을위한 정보의 한 자리에 있어야한다고 확신했다. 이것은 내가 오랫동안 걱정했던 것입니다. 그러나 문제는 스냅이 아닙니다. 문제는 fdisk개발자들입니다. 의사 장치에서 실제 장치를 필터링하여 과도한 출력을 제거하고 Gnome-disk-utility와 같이 응용 프로그램을보다 관리하기 쉽게 만드는 방법을 추가해야합니다. 아무도 루프 장치 fdisk를 관리하는 데 사용하지 않습니다 . (계속) ...
LD 제임스

4
... (계속) fdisk 출력 에서 볼 필요조차 없습니다 . 이것이 losetup 및 기타 의사 응용 프로그램 명령입니다. 도구로 관리 할 수 ​​없다면 왜 귀찮게 표시합니까? fdisk 디자인의 이러한 결함으로 인해 partedlsblk 와 같은 앱이 더욱 대중적이고 사용자 친화적으로 만들어졌습니다.
LD 제임스

1
감사합니다. 오늘 | egrep -v "^loop"모든 16.04 lsblk스크립트에 추가 하여 18.04로 변환 한 날의 유지 관리 작업을 줄였습니다. (참고로 나는 오늘 오늘 당신의 대답을 이미 투표했습니다)
WinEunuuchs2Unix

5

나는 이것도 성가신 것을 발견한다. 실행 중이 아니면 마운트하거나 나열해서는 안됩니다. 이 명령을 실행하여 모든 루프 장치를 제외 할 수 있습니다.

$ lsblk -e 7


1

시스템 모니터의 스냅 버전을 사용하는 경우, 스냅에서 사용하는 모든 파일 시스템과 사용중인 파일 시스템이 표시됩니다.

쉬운 "수정"은 앱 스토어에서 Gnome System Monitor를 제거하는 것입니다. 스냅 버전입니다.

그런 다음 Synaptic 패키지 관리자를 사용하여 일반 리포지토리에서 Gnome System Monitor를 설치하십시오. 루트 파티션 전체에 많은 파일을 설치하는 것은 정상적인 버전입니다. 좋은!

그리고 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.