머신을 복제할 때 디스크 UUID 불일치를 방지하는 방법은 무엇입니까?

머신을 복제할 때 디스크 UUID 불일치를 방지하는 방법은 무엇입니까?

저는 데비안 리눅스 머신을 만들었습니다. 압축된 tar 파일 형식으로 전체 하드 드라이브의 "이미지"를 캡처했습니다. 그런 다음 다른 컴퓨터에 압축을 풀고 부팅할 수 있도록 grub을 설정했습니다.

내가 겪고 있는 문제는 디스크 UUID가 원래 디스크 UUID와 다르기 때문에 디스크가 읽기 전용으로 마운트된다는 것입니다. 나중에 /etc/fstab에서 올바른 UUID를 구성하여 이 문제를 해결할 수 있지만 이 문제는 피하고 싶습니다.

다른 컴퓨터에 압축을 풀 때 이 문제를 방지하려면 "이미지"를 캡처하기 전에 원래 컴퓨터에서 무엇을 할 수 있습니까?

업데이트: 답변 중 하나에 대한 유용한 의견을 바탕으로 초기 머신과 후속 클론에는 디스크가 하나만 있다는 점을 명확히 해야 합니다.

답변1

다른 컴퓨터에 압축을 풀 때 이 문제를 방지하려면 "이미지"를 캡처하기 전에 원래 컴퓨터에서 무엇을 할 수 있습니까?

이름으로 디스크 참조를 마운트하는 대신

  • 설치됨태그로
  • 또는 설치이름으로

# for example when mounted by-name it would look like this in /etc/fstab

/dev/sda3   /

# and When mounted by-label it would like this in /etc/fstab

LABEL=some_name   /

행위태그로추가 작업 없이 새 시스템에서 작동합니다.

어떻게 하는지 알아이름으로해당 디스크가 시스템의 유일한 디스크이고 참조가 로 보장되는 경우에만 새 시스템에서 작동합니다 sda. 시스템에 다른 디스크가 있거나 다른 하드웨어를 볼 때마다 /dev/sd?복제된 디스크가 항상 거기에 있을 것이라고 믿을 수는 없습니다 sda. 이것이 바로 이름별 문제입니다. 모든 /etc/fstab참조에 grub해당 내용이 있지만 /dev/sda디스크에도 해당 내용이 있는 /dev/sdb경우부팅 장치를 찾을 수 없습니다.

Linux 시스템, RHEL/CentOS, SLES/SUSE, Ubuntu 등에 대해 조금 알아야 합니다.모든 디스크 참조의 위치를 ​​찾습니다.. 그것만이 아니다 /etc/fstab. 이것애벌레부트로더는 Linux에서 가장 널리 사용되므로 다른 곳에 있을 가능성이 높습니다. 스토리: 저는 SLES 11을 사용했는데 ELILO를 사용했습니다. grub을 대체했고 훌륭하다고 생각했습니다... ELILO를 다시 가져오세요! ...하지만 그 점에 대해서는 걱정할 필요가 있어요하나이 외에 다른 파일 /etc/fstabelilo.conf.

새로 복제된 디스크가 실행되면 새 시스템(호스트 이름, IP 주소 등)을 설정하는 다양한 작업 중에 /etc/fstabgrub 파일을 업데이트하여 -uuid를 통해 마운트로 돌아갑니다.

설치에 대해서도 알아보세요태그로다른 디스크가 동일한 레이블을 사용하지 않도록 하는 것은 귀하의 책임입니다. 간단해 보이지만 잊어버리기 쉽습니다. 예를 들어 저는 항상 /boot파티션 boot/파티션에 레이블을 지정합니다 root. 디스크를 복제한 다음 그 중 두 개를 연결하고 부팅을 시도하면 디스크가 여러 개 있을 때 시스템에서 어떤 디스크를 선택합니까?분할같은 태그가 있나요? 따라서 잊어버리면 탭을 누르는 것이 문제가 될 수 있습니다. 시스템은 쉽게 부팅되고 작동하지만 생각하는 디스크에서는 실행되지 않습니다.

아래를 내려다보면 /dev/disk/알게 될 거야

  • 보도자료 ID/
  • 태그로/
  • 섹션 태그별/
  • by-partuuid/
  • 우회로/
  • -uuid/를 통해

그것을 참조하십시오. 매우 명확해야합니다.

ls -l /dev/disk/by-label

lrwxrwxrwx. 1 root root 10 Mar  2 15:46 boot -> ../../sdc2
lrwxrwxrwx. 1 root root 10 Mar  2 15:46 data -> ../../sda1
lrwxrwxrwx. 1 root root 10 Mar  2 15:46 root -> ../../sdc3
lrwxrwxrwx. 1 root root 10 Mar  2 15:46 scratch -> ../../sdb1

# Explanation of these 4 listings: when installing Linux I always do
    /boot    ==> /dev/sda2  labeled as 'boot'
    /        ==> /dev/sdc3  labeled as 'root'
   
  my other disks here on this specific system I labeled as data and scratch.

답변2

  1. blkid원시 파티션 UUID를 찾는 데 사용됩니다 .
  2. ext2/ext3/ext4 파티션의 경우 sudo tune2fs -U UUID /dev/partition1에서 얻은 UUID를 설정하십시오.
  • btrfs의 경우sudo btrfstune -U UUID /dev/partition
  • xfs의 경우sudo xfs_admin -U UUID /dev/partition

조심해라아니요다른 파티션을 사용하는 것이 좋습니다.동일한 UUID두 디스크를 모두 동일한 PC에 연결하기로 결정한 경우 특히 그렇습니다. 당신의 핵심과 당신 개인적으로 혼란스러울 수도 있고, 예상치 못한 일이 일어날 수도 있습니다.

관련 정보