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

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

예를 들어, 다음은 my 의 첫 번째 줄입니다 /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는 에서 사용된 것과 동일해야 합니다 /etc/fstab.

답변1

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

시스템에 다른 하드 디스크를 추가했는데 어떤 이유로 OS가 기존 디스크 sdbsda.

fstab장치 이름을 가리키면 부팅 프로세스가 망가질 수 있습니다 . 그러나 UUID의 경우에는 괜찮습니다.

UUID에 대한 자세한 내용은 블로그 게시물에서도 확인할 수 있습니다."UUID와 Linux: 당신이 알아야 할 모든 것"

답변2

그렇다면 /etc/fstab을 이렇게 수정해도 되나요?

~할 수 있다그리고 그럴 것이다아마괜찮습니다. 하지만 UUID를 떠나는 것이 더 나을 가능성이 높습니다.

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

UUID를 사용하면 오류가 없다는 장점이 있습니다./dev/vda 않습니다. 그것~할 수 있었다부팅 시 다른 드라이브가 되는 경우가 있습니다. 그러나 이는 문맥상 완전히 이론적인 것일 수 있습니다(예: 특정 유형의 드라이브가 하나만 있기 때문에).

장치 이름을 사용하면 문제가 발생할 수 있는 또 다른 미묘한 예는 최근 일부 시스템에서 장치 이름을 사용하도록 전환한 것입니다.일관된 네트워크 장치 이름. 업그레이드로 인해 이런 일이 발생하고 네트워크 스크립트 어딘가에 하드코딩된 장치 이름을 사용한 경우 중단될 수 있습니다. 병렬 예제 WRT 블록 장치는 명명 체계를 변경하는 커널 또는 udev 업그레이드일 수 있습니다.

UUID의 한 가지 요점은 이러한 종류의 작업을 가능하고 고통스럽지 않게 만드는 것입니다. 그래서 당신이 동안~할 수 있다장치 이름을 사용하면 아무런 이점이 없습니다.~하지 않는 한(예) 다른 드라이브를 교체하는 시스템이 있습니다. 즉, 그렇게 해야 할 타당한 이유가 없다면UUID를 고수하라.

답변3

man fstab파일 의 내용과 의미를 상당히 간결하게 읽을 수 있습니다 /etc/fstab. 상당히 최신의 Arch Linux 서버인 내 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/diskby-idby-pathby-uuid

관련 정보