/sda /sdb가 부팅 사이에 변경되는 것을 방지하는 방법은 무엇입니까?

/sda /sdb가 부팅 사이에 변경되는 것을 방지하는 방법은 무엇입니까?

저는 IDE와 SATA 하드 드라이브가 모두 있는 오래된 하드웨어에 Gentoo Linux를 설치할 계획입니다. IDE 2개와 SATA 드라이브 1개가 연결되어 있으며 RAID를 계획하고 있습니다.

하지만 문제가 발견되었습니다. 부팅할 때마다 /dev/sda에 매핑된 하드 드라이브가 변경된다는 것입니다!

인터넷에서 답을 찾고 있어요. 내가 찾은영구 장치 이름해결책이 될 수 있습니다. 하지만 시스템 전체의 호환성 문제가 발생할까 봐 걱정되나요? 또한 를 사용할 수 없으면 (이름이 매우 길기 때문에) 불편 /dev/disk/by-label하지만 가능 하지는 by-label않은 것 같습니다 . 또한 BIOS를 사용하는 오래된 하드웨어의 경우/dev/sda/dev/sdb/dev/sda1GPT가 아닌 MBR만 사용할 수 있습니다.. MBR 환경에서 디스크 레이블을 변경하는 방법은 무엇입니까?

반면, /dev/sda부팅할 때마다 동일한 하드 드라이브에 매핑하는 것이 이상적인 솔루션이라고 생각합니다. 하드 드라이브에 "bootmap"이라는 파일을 저장하면 이를 수행할 수 있다고 상상해 보십시오. 그리고 "/sda"는 "bootmap" 파일에 기록됩니다. 시스템이 부팅될 때 "bootmap"에 "/sda"가 있으면 드라이브가 에 매핑되고, /dev/sda"/sdb"가 있으면 에 매핑됩니다 /dev/sdb. (그러나 나는 이것이 그다지 이상적이지 않을 수도 있다는 것을 알고 있습니다.)

그렇다면 /dev/sda부팅 간 매핑 변경을 방지하는 방법은 무엇입니까?

대안으로 태그를 편집하는 좋은 방법도 있습니다. - 어디에도 호환성 문제가 없을 것이라는 점을 고려하면.

(PS - 어쨌든 인터넷에는 아직 해결책이 없습니다.)

답변1

대부분의 파일 시스템에는 고유한 값으로 설정할 수 있는 고유한 UUID와 태그가 있습니다. 이를 통해 /dev/disk/by-uuid파일 시스템이 포함된 볼륨을 전달하거나 참조할 수 있습니다 /dev/disk/by-label. 다른 유형의 볼륨(RAID, LVM 등)에도 일반적으로 이름이 있습니다. RAID 및 LVM 볼륨은 볼륨 연결 방식에 관계없이 물리 볼륨 내의 고유 식별자를 기반으로 구성됩니다. 따라서 디스크 자체를 참조해야 하는 필요성은 일반적이지 않습니다.

연결된 방식에 따라 디스크에 실제로 액세스해야 하는 경우 /dev/disk/by-id또는 형식의 항목을 사용할 수 있습니다. 모든 하위 디렉터리는 다음으로 표시됩니다.BUS-SERIALBUS-NAME-SERIAL/dev/disk/우데브그런데 특히지속적인 저장 규칙.

또 다른 해결책은 아래에 자신만의 심볼릭 링크를 만드는 것입니다 /dev. 이를 위해 udev 규칙을 작성할 수 있습니다. /etc/udev/rules.d/50-local-persistent-disks.rules다음 규칙이 포함된 파일을 추가하세요 .

SUBSYSTEM=="block", ATTRS{model}=="Yoyodine HD9001", \
  ATTRS{serial}=="123-456-789", \
  SYMLINK+="myfancyname"

어떤 모드를 사용할 수 있는지 udevadm info -a /dev/sda확인하려면 실행하세요 . …==…여러 모드를 사용하는 경우 동일한 출력 블록에서 나와야 하며 다른 상위 장치의 모드를 혼합할 수 없습니다.

답변2

디스크 유형/모델에만 바인딩되는 /dev/disk/by-id/ 링크를 안전하게 사용할 수 있다고 생각합니다.

lrwxrwxrwx 1 root root   9 Jul 14 15:13 ata-Hitachi_HDS123456789_PVC1234567890 -> ../../sda

/dev/disk/by-path는 컨트롤러와 충돌할 가능성이 없습니다.

lrwxrwxrwx 1 root root   9 Jul 14 15:13 pci-0000:00:1f.2-ata-2 -> ../../sda
lrwxrwxrwx 1 root root  10 Jul 14 15:13 pci-0000:00:1f.2-ata-2-part1 -> ../../sda1
lrwxrwxrwx 1 root root  11 Jul 14 15:40 pci-0000:00:1f.2-ata-2-part10 -> ../../sda10
lrwxrwxrwx 1 root root  11 Jul 14 15:43 pci-0000:00:1f.2-ata-2-part11 -> ../../sda11
lrwxrwxrwx 1 root root  11 Jul 14 15:13 pci-0000:00:1f.2-ata-2-part12 -> ../../sda12

답변3

제 경우에는 홈 디렉터리(예: /home/username/Data)에 /dev/sdb(추가 HDD)를 마운트하여 문제를 해결했습니다. 하지만 /mnt 안에 /dev/sdb를 마운트하면 컴퓨터를 다시 시작할 때마다 sda와 sdb가 교체됩니다.

관련 정보