lsblk가 포맷된 장치에 대해 이전 FSTYPE 및 LABEL을 표시하는 이유는 무엇입니까?

lsblk가 포맷된 장치에 대해 이전 FSTYPE 및 LABEL을 표시하는 이유는 무엇입니까?

저는 parted를 사용하여 외장 하드 드라이브(sdc)를 ntfs로 포맷하고 기본 파티션(sdc1)을 만들었습니다. 기기를 포맷하기 전에시스템 복구 디스크dd부팅 가능한 USB로 사용하기 위해 외장 하드 드라이브에 설치하려면 명령을 사용하십시오 . 그러나 장치를 나열할 때 lsblk -f포맷된 장치(sdc)에 대한 이전 FSTYPE(iso9660) 및 LABEL(sysrcd-5.2.2)이 계속 표시됩니다.

NAME       FSTYPE      LABEL           UUID   MOUNTPOINT
sda                                                                            
├─sda1     ntfs        System Reserved                       
├─sda2     ntfs                                               
├─sda3     ntfs                                               
├─sda4                                                                         
sdc        iso9660     sysrcd-5.2.2                     
└─sdc1     ntfs        sysrcd-5.2.2          /run/media/user/sysrcd-5.2.2

그림과 같이 lsblk -f파티션의 FSTYPE만 sdc1맞고, sdc1파티션의 LABEL, sdc블록디바이스의 FSTYPE과 LABEL은 모두 틀렸다. 노틸러스 GUI 응용 프로그램은 이전 장치 레이블(sysrcd-5.2.2)도 표시합니다.

새 파티션 테이블을 생성한 후 parted장치를 다음과 같이 포맷하기 전에 시스템을 재부팅하라는 조언을 받았습니다.NTFS, 재부팅하는 대신 sdc를 제거하기로 결정했습니다.

  • 시스템을 재부팅하지 않았고 커널이 여전히 이전 FSTYPE 및 LABEL을 사용하고 있기 때문입니까? 이전 FSTYPE 및 LABEL을 제거하려면 시스템을 재부팅해야 합니까?
  • 재부팅하는 대신 외부 하드 드라이브와 함께 제공된 원래 FSTYPE 및 LABEL로 변경할 수 있도록 블록 장치의 FSTYPE 및 LABEL 이름을 수동으로 바꾸는 방법이 있습니까?

답변1

원본 게시물의 출력에 따르면 lsblk -f설치된 SystemRescueCd의 서명이 외장 하드 드라이브에 여전히 존재하는 것으로 의심됩니다. 그래서 명령을 실행 하고 모든 파티션에 대한 정보를 wipefs /dev/sdc인쇄했습니다 .wipefs /dev/sdc1sdcsdc

[root@fedora user]# wipefs /dev/sdc
DEVICE OFFSET TYPE    UUID                   LABEL
sdc    0x8001 iso9660                        sysrcd-5.2.2
sdc    0x1fe  dos                            
[root@fedora user]# wipefs /dev/sdc1
DEVICE OFFSET TYPE UUID             LABEL
sdc1   0x3    ntfs  
sdc1   0x1fe  dos

위의 인쇄물은 iso9660SystemRescueCd에 의해 생성된 파티션 테이블이 여전히 존재함을 확인합니다. dos(마스터 부트 레코드) lsblk파티션 테이블 대신 파티션 테이블의 합계를 사용합니다 . TYPE올바른 파티션 테이블을 표시하려면 파티션 테이블을 삭제해야 합니다. 블록(디스크) 장치의 파티션 테이블 서명을 지우는 데에도 사용할 수 있지만 다른 파티션 테이블도 지울 수 있습니다.LABELiso9660lsblkiso9660dddd

삭제 를 위해 특정 파티션 테이블 서명만을 대상 으로 하기 때문에 이것이 선호됩니다 wipefs. 이 명령에 대한 옵션은 장치에서 사용 가능한 모든 서명을 지우지만 이 옵션과 함께 사용할 경우 이 명령에 대한 옵션은 특정 유형의 파티션 테이블만 지우도록 서명을 제한합니다. 다음으로 파티션 테이블을 지웁니다 . () 옵션은 블록 장치에서 파티션 테이블 서명을 지울 때 필요합니다 .ddwipefs-awipefs-twipefs-aiso9660-f--force

[root@fedora user]# wipefs -a -t iso9660 -f /dev/sdc
/dev/sdc: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31

파티션 테이블을 삭제 한 후 iso9660파티션 테이블을 다시 확인하여 파티션 테이블이 iso9660삭제되었는지 확인합니다.

[root@fedora user]# wipefs /dev/sdc
DEVICE OFFSET TYPE UUID LABEL
sdc    0x1fe  dos       
[root@fedora user]# wipefs /dev/sdc1
DEVICE OFFSET TYPE UUID             LABEL
sdc1   0x3    ntfs 34435675G36Y4776 
sdc1   0x1fe  dos 

그러나 이제 문제의 파티션 테이블이 iso9660삭제되었으므로 이전에 사용된 파티션 테이블 레이블이 더 이상 존재하지 않으므로 파티션의 파티션이 lsblk이제 UUID마운트 지점 디렉터리 이름으로 사용됩니다.iso9660

NAME       FSTYPE      LABEL           UUID   MOUNTPOINT
sda                                                                            
├─sda1     ntfs        System Reserved                       
├─sda2     ntfs                                               
├─sda3     ntfs                                               
├─sda4                                                                         
sdc                            
└─sdc1     ntfs        34435675G36Y4776          /run/media/user/34435675G36Y4776

/dev/disk/by-label레이블이 지정된 모든 파티션을 나열하는 디렉터리에서 레이블이 지정된 볼륨(예: 파티션)을 확인할 수 있습니다 .

[root@fedora user]# ls -l /dev/disk/by-label
total 0
lrwxrwxrwx. 1 root root 10 Apr 30 19:47 'System\x20Reserved' -> ../../sda1

ntfs이 파티션의 파일 시스템은 sda1레이블이 있는 유일한 파티션 입니다.

ntfs마운트 지점의 디렉터리 이름을 더 쉽게 이해할 수 있도록 sdc1파티션의 파일 시스템 레이블을 None(빈 문자열)에서 "new label"로 변경합니다. 파일 시스템 레이블을 변경하는 명령은 파일 시스템에 따라 다릅니다.12. 파일 시스템 의 경우 ntfs레이블 변경은 다음 명령을 사용하여 수행됩니다 ntfslabel.

ntfslabel /dev/sdc1 "new-label"

ntfs이제 파일 시스템의 레이블을 변경한 후 디렉터리 이름을 마운트 지점으로 lsblk사용합니다 ."new-label"

NAME       FSTYPE      LABEL           UUID   MOUNTPOINT
sda                                                                            
├─sda1     ntfs        System Reserved                       
├─sda2     ntfs                                               
├─sda3     ntfs                                               
├─sda4                                                                         
sdc                            
└─sdc1     ntfs        new-label          /run/media/user/new-label

참고: 또한 이 장치에는 sdc더 이상 다른 모든 블록 장치(예: sda)와 같은 파일 시스템 유형 및 레이블이 없습니다. 파일 시스템은 장치가 아닌 파티션에 있으므로 파티션에만 파일 시스템 유형이 있어야 하며, 열 헤더는 LABEL장치 레이블이 아니라 파일 시스템 레이블이기 때문에 파티션에만 레이블이 있어야 합니다.

답변2

파티션 테이블을 루트로 다시 읽어보셨나요?

partprobe /dev/sdc

답변3

lsblk첫 번째 섹터를 먼저 검사하여 장치에 어떤 유형의 파일 시스템이 포함되어 있는지 확인하고 아무것도 발견되지 않는 경우에만 파일 시스템 수퍼 블록의 "일반적인" 위치로 이동합니다.

iso9660은 첫 번째 섹터의 데이터에서 식별할 수 있으므로 lsblk더 이상 살펴보지 않고 여기에서 볼륨 레이블을 추출합니다.

단순히 파티션 테이블을 생성하면 첫 번째 섹터의 대부분이 그대로 유지되므로 이 내용이 표시됩니다.

예를 들어 먼저 첫 번째 섹터를 지운 dd if=/dev/zero of=/dev/sdc count=1다음 파티션 테이블을 다시 만들어야 합니다. 이전에 만든 NTFS 파일 시스템은 동일한 매개 변수를 사용하여 다시 만들 경우 그대로 유지됩니다.

관련 정보