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


21

예를 들어, 이것은 내 첫 줄입니다 /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.


sudo blkid명령으로 UUID를 확인하십시오 .
Avinash Raj

@AvinashRaj Hmm, 이상하게도이 sudo blkid명령은에 대해 다른 UUID를 출력합니다 /dev/vda. 이것은 내 혼란에 추가합니다. :) (업데이트 된 질문.)
its_me 2018 년

blkid 명령이 다른 UUID를 표시한다는 것은 좋은 신호가 아닙니다.`ls -l / dev / disk / by-uuid '로 현재 UUID를 확인하십시오. vda 이후 기본 VM 인프라가 무언가를 변경했을 수 있습니까?
liquidat에서

@liquidat 이것은 내가 얻은 출력입니다 : lrwxrwxrwx 1 root root 9 Jun 18 11:04 6f469437-4935-44c5-8ac6-53eb54a9af26 -> ../../vda. 다른 질문에 대해서는 웹 호스트에게 연락 드리겠습니다.
its_me

fstab 항목이 잘못되어 시스템이 재부팅되지 않을 수 있습니다. 복제 된 디스크 또는 무언가 일 수 있습니다. fstab에 UUID가있는 다른 장치가 없다고 생각합니까?
liquidat에서

답변:


22

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

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

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

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


네. 새 디스크를 추가하지 않아도 커널은 하루에 두 개의 드라이브 개발 마운트를 교체하기로 결정할 수 있습니다. 참조 wiki.archlinux.org/index.php/Persistent_block_device_naming
토미

다른 UUID를 가진 다른 디스크로 이미지를 복제하려면 어떻게됩니까?
aloplop85

UUID가 유용하지 않은 상황이 적어도 하나는 있습니다. 전체 디스크를 복제 한 다음 다시 부팅하면 디스크 또는 잘못된 디스크에서 파티션을 마운트 할 수 있습니다.
boot13

사실입니다-링크 된 블로그 게시물을 확인하십시오. 사용하지 않을 섹션도 있습니다.
청산

디스크를 복제하는 경우 새 디스크에서 UUID를 변경해야합니다. tune2fs xfs_admin 또는 reiserfstune은 파일 시스템에 따라이를 수행 할 수 있습니다.
steveayre

3

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

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

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

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

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

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


괜찮아. 그래서 무엇을 위해 서로 다른 UUID를 설명 /dev/vda/etc/fstab의해보고 blkid? (없는 경우 업데이트 된 질문을 참조하십시오.)
its_me

5
업데이트를 요청하는 대신 별도의 질문으로 질문해야합니다 ( "마운트 된 파티션 UUID가 fstab의 파티션 UUID와 다른 이유는 무엇입니까?").
goldilocks

2

파일 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가) 모두 동일한 기기의 대체 이름으로 표시됩니다.


이 경우 문제는 (내 질문에 업데이트 된 것처럼) 두 개의 다른 UUID를 얻는 것입니다 /dev/vda! 질문을 한 번 더 참조하십시오.
its_me

1
원래 질문에 대답 한 경우 "답변"으로 표시하고 새 질문을 작성하는 것이 좋습니다. 단지 관련없는 답변, 수정 된 질문이 아닌 원본과 관련된 답변을 수집하지 않도록하십시오.
Bruce Ediger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.