내 시스템에 여러 개의 하드 드라이브 파티션이 있습니다(Linux josDeb 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux). 다음과 함께 작동합니다.
bejo@josDeb:~$ ls -l /dev/disk/by-uuid
생산하다:
total 0
lrwxrwxrwx 1 root root 10 Apr 13 16:20 00FB-604A -> ../../sdb1
lrwxrwxrwx 1 root root 10 Apr 13 16:19 4425-7572 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 13 16:19 8dc07aba-5729-4525-883f-09c32d1a9e98 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 13 16:19 95a8efff-92d2-4e31-8632-bf7a640e100f -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 13 16:19 f5a05b5e-c3ed-4227-bb62-fe4576b72643 -> ../../sda4
일부 파티션 uuid는 매우 길고 일부는 매우 짧습니다. 이유를 이해하고 싶습니다. 내 생각에 uuid는 항상 16바이트입니다. UUID의 크기가 다른 이유는 무엇입니까?
답변1
실제보편적으로 고유한 식별자s는 길이가 128비트이고 고유해야 합니다. 이전에는 다양한 시스템에서 차별화를 위해 다양한 크기의 일련번호를 제공했습니다. 따라서 Linux는 /dev/by-uuid/
UUID 정의와 일치하지 않더라도 찾을 수 있는 시퀀스를 가져와서 디렉터리에 붙여넣습니다 . 이것이 그 경우 다FAT32 볼륨 ID:
Sector offset FAT32 EBPB offset Length (bytes) Contents
0x043 0x38 4 Cf. 0x027 for FAT12/FAT16 (Volume ID)
볼륨 ID(일련번호)
일반적으로 일련 번호 "xxxx-xxxx"는 INT 21h/AH=2Ah(시스템 날짜 가져오기) [nb 7] 및 INT 21h/AH=2Ch(시스템 날짜 가져오기)에 의해 반환된 DX 값을 16비트 추가하여 생성됩니다. 시스템 시간) [ nb 7]은 일련 번호의 상위 워드에 사용되고 두 CX 값의 또 다른 16비트 추가는 일련 번호의 하위 워드에 사용됩니다. 또는 일부 DR-DOS 디스크 유틸리티는 BCD로 인코딩된 월, 일, 시, 분의 8비트 값을 기반으로 사람이 읽을 수 있는 타임스탬프 "mmdd-hhmm"을 생성하기 위한 /# 옵션을 제공합니다(시퀀스 대신). 숫자).
예를 들어 4425-7572로 표시될 수 있는 32비트 값입니다. 이 두 파티션은 FAT32여야 하므로 EFI 시스템 파티션일 가능성이 높습니다.
더 나은 정보를 얻을 수 있습니다(아마도 여러 /dev/disks/by-*/
항목을 구문 분석하여)blkid
명령은 다음과 같이 변경됩니다.
# blkid
아니면 다음과 같은 짧은 항목만 사용하세요.
# blkid /dev/sda1 /dev/sdb1
사용 설명서에서는 사용을 권장합니다.lsblk
반대로 루트가 필요하지 않습니다. 따라서 올바른 선택은 입니다 lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
.
예를 들면 다음과 같습니다.
$ lsblk -o +UUID,FSTYPE /dev/sda1 /dev/sdb1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID FSTYPE
sda1 8:1 0 200M 0 part /boot/efi 1234-5678 vfat
sdb1 8:17 1 200M 0 part 9ABC-DEF0 vfat