fstab이 실제 파일 시스템 이름 대신 UUID를 사용하는 이유는 무엇입니까? 498172

예를 들어, 이것은 내 첫 줄입니다 /etc/fstab.

UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a    /    ext4    errors=remount-ro    0    1

다음은 df -h명령 의 출력입니다 (여유 디스크 공간보고).

honey@bunny:~$ df -T

Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/vda       ext4      30832636 4884200  24359188  17% /
none           tmpfs            4       0         4   0% /sys/fs/cgroup
udev           devtmpfs    498172      12    498160   1% /dev
tmpfs          tmpfs       101796     320    101476   1% /run
none           tmpfs         5120       0      5120   0% /run/lock
none           tmpfs       508972       0    508972   0% /run/shm
none           tmpfs       102400       0    102400   0% /run/user
  1. 두 번째에서 첫 번째 열 이 ? 인지를 UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a나타내는 것을 추론하는 것이 좋습니다 ./dev/vdafstab<file system>

  2. 그래서 이것을 수정하면 괜찮을 /etc/fstab까요?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. 편집 : 그렇다면 (위의 질문에) 왜 sudo blkid명령에 대해 다른 UUID가 표시 /dev/vda됩니까?

    $ sudo blkid
    
    /dev/vda: LABEL="DOROOT" UUID="6f469437-4935-44c5-8ac6-53eb54a9af26" TYPE="ext4"
    

    내가 여기서 무엇을 놓치고 있습니까?

    답 : (3) 호스트의 클라우드에 버그가 있다고 결론을 내 렸습니다. 따라서 blkid(또는 ls -l /dev/disk/by-uuid)에 의해보고 된 UUID는에 사용 된 UUID 와 동일해야합니다 /etc/fstab.



답변

UUID를 사용하면 운영 체제가 하드 디스크에 제공하는 실제 장치 번호와 독립적이라는 장점이 있습니다.

시스템에 다른 하드 디스크를 추가한다고 가정하고 어떤 이유로 OS에서 이전 디스크가 sdb대신 이라고 결정합니다 sda.

fstab장치 이름을 가리키면 부팅 프로세스가 망가졌습니다 . 그러나 UUID의 경우에는 문제가 없습니다.

UUID에 대한 자세한 정보는 블로그 게시물 “UUID 및 Linux : 알아야 할 모든 것” 에서도 확인할 수 있습니다 .


답변

이 경우 / etc / fstab을 이것으로 수정할 수 있습니까?

당신은 할 수 그것은 것입니다 아마 괜찮을 있지만, 대부분은 UUID를 떠나 더 좋을 것이다.

UUID 는이 경우 블록 장치의 파티션을 식별하는 데 사용되는 임의의 문자열입니다. 파티션 자체와 함께 저장되며 원하는 경우 다른 MAC 주소를 지정할 수 있습니다 (MAC 주소와 같은 정렬).

UUID를 사용하면 얻을 수있는 이점은 틀림 /dev/vda없습니다. 이 는 부팅시에 다른 드라이브되고 끝나는 것이이 상황에서 완전히 이론적 수 있지만 (예를 들어, 당신은 단지 특정 유형의 하나 개의 드라이브가 있기 때문에,), 일.

장치 이름을 사용하여 문제를 일으킬 수있는 또 다른 미묘한 예는 일부 시스템에서 최근에 일관된 네트워크 장치 이름 을 사용하도록 전환 한 것 입니다. 이것이 업그레이드로 발생하고 네트워크 스크립트에서 하드 코드 된 장치 이름을 사용한 경우에는 작동이 중단됩니다. 병렬 예제 WRT 블록 장치는 이름 지정 체계를 변경하는 커널 또는 udev 업그레이드 일 수 있습니다.

UUID의 한 가지 요점은 이러한 종류의 일을 가능하고 고통스럽게 만드는 것입니다. 당신이 동안 그래서 수있는 장치 이름을 사용, 어떠한 장점은 이렇게에 존재하지 않는 한 (예) 당신은 당신이 다른 드라이브를 교환하는 시스템을 가지고있다. 즉, 당신이, 할 수있는 좋은 이유가없는 경우 와 스틱을 UUID .


답변

파일 man fstab의 내용과 의미를 상당히 간결하게 읽을 수 있습니다 /etc/fstab. 제 x86에서는 상당히 최신의 아치 리눅스 서버에서 다음을 man fstab제공합니다.

The second field ... describes  the mount point for the filesystem.

따라서 두 장치 이름이 모두 “/”에 마운트 된 것처럼 보이는 것처럼 /dev/vda일부 장치의 여러 이름 중 하나 인 것 UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a같습니다.

당신이 디렉토리에 보면 /dev/disk/by-uuid/당신은 일을 가리키고 좋아하는 기호 링크를 볼 수 있습니다 /dev/sda1, /dev/sdb1내 서버에. 이것은 가설을 확인하는 또 다른 방법 일 수 있습니다. /dev/disk하위 디렉토리 by-id,이 by-path( by-uuid가) 모두 동일한 기기의 대체 이름으로 표시됩니다.