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


3

젠투 리눅스를 오래된 하드웨어에 설치하려고하는데, 메인 보드에는 IDE와 SATA 하드 드라이브가 모두 있습니다. 두 개의 IDE와 하나의 SATA 하드 드라이브가 연결되어 있으며 RAID를 사용할 계획입니다.

그러나 문제가 있습니다. 매번 부팅 할 때마다 / dev / sda에 매핑 된 하드 드라이브가 변경됩니다!

인터넷에서 답을 찾고있었습니다. 그리고 Persistent Device Names 가 해결책이 될 수 있다는 것을 알았습니다 . 그러나 시스템 전체에서 호환성 문제가 발생 할까 걱정하고 있습니까? 또한 내가 사용할 수 없다면 (이름이 아주 길기 때문에) 매우 불편합니다 /dev/disk/by-label. 그러나 보인다 by-label참조 할 수 없습니다 /dev/sda/dev/sdb전용 - /dev/sda1가능하다. 또한 BIOS를 사용하는 이전 하드웨어의 경우 MPT 만 사용할 수 있지만 GPT는 사용할 수 없다고 생각 합니다. MBR 환경에서 디스크 레이블을 변경하는 방법은 무엇입니까?

반면에, 내 마음에 이상적인 솔루션은 /dev/sda부팅 할 때마다 동일한 하드 디스크에 매핑되는 것입니다. 가상 디스크에 "bootmap"이라는 파일을 저장하면이 작업을 수행 할 수 있습니다. "/ sda"는 "bootmap"파일에 기록됩니다. 시스템 부팅 중에 "bootmap"에서 "/ sda"를 찾으면 드라이브가에 매핑됩니다 /dev/sda. "/ sdb"를 찾으면에 매핑됩니다 /dev/sdb. 등등. (그러나 나는 그것이 그렇게 이상적이지 않다는 것을 알고 있습니다.)

그렇다면 /dev/sda부팅에서 부팅으로 변경 사항을 매핑하는 것을 피하는 방법은 무엇입니까?

대안으로, 라벨을 편집하는 방법도 좋습니다. -어디서나 호환성 문제가 발생하지 않습니다.

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


sudo e2label /dev/sdb1 "mydiskname"-ubuntuforums.org/showthread.php?t=1113236에서
Yaron

답변 감사합니다. ntfslabelWindows 드라이브에서와 같이 레이블을 성공적으로 변경했습니다 . 사용 된 시스템 전체에 의해 "레이블 별"이 가능합니까? 경우에 따라 지정해야하는 경우는 어떻게 /dev/sda됩니까?
midnite

답변:


4

대부분의 파일 시스템에는 고유 한 UUID가 있으며 고유 한 값으로 설정할 수있는 레이블이 있습니다. 이들은 당신이를 통해 파일 시스템을 포함하는 볼륨을 참조 할 수 있습니다 /dev/disk/by-uuid또는 /dev/disk/by-label. 다른 유형의 볼륨 (RAID, LVM 등)도 일반적으로 이름이 있습니다. RAID 및 LVM 볼륨은 볼륨 연결 방법에 관계없이 물리 볼륨의 고유 식별자를 기반으로 어셈블됩니다. 따라서 디스크를 참조해야하는 경우는 드 unusual니다.

연결 방식에 따라 디스크에 액세스해야하는 경우을 사용할 수 있습니다 /dev/disk/by-id. 항목은 또는 형식 입니다. 모든 서브 디렉토리는 udev 에 의해, 특히 영구 저장 규칙에 의해 유지 보수됩니다 .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을 확인하려면 …==…당신이 사용할 수있는 패턴. 여러 패턴을 사용하는 경우 동일한 출력 블록에서 가져와야하며 다른 상위 장치의 패턴을 혼합 할 수 없습니다.


답장을 보내 주셔서 감사합니다. udev 규칙 작성 방향을 알려주십시오. 나는 udev 규칙 작성에 대해 공부하고 있습니다. 교환 할 수 있습니다 것 /dev/sda으로 /dev/sdb도 시스템 후에 시작합니다. 정말 마법입니다.
midnite

그들이해야 오타 인 경우 잘 모르겠습니다 ATTRS{model}=="..."ATTRS{serial}=="...".
midnite

이것 좀 도와주세요. 내 첫 코멘트에 링크 된 웹 페이지에서는 변경을 가르쳐 /dev/sdb/dev/my_spare_disk의해 KERNEL=="hdb", NAME="my_spare_disk". 나는 규칙을 KERNEL=="sd?", ATTRS{model}=="TOSHIBA MK1034GS", NAME="sdz"만들고했다 udevadm test /block/sda. 그러나 나는 받고있다 kernel device nodes can not be renamed. @ ibre5041은 우리가 더 이상 마지막 주석/dev/sd* 에서 더 이상 변경할 수 없다고 언급 한 것 같습니다 . 확인 하시겠습니까? 해결 방법이 있습니까?
midnite

너무 이상하고 나는 단순히 내가 할 수 있음을 알았습니다 mv sda sdz! 여기에서 영감을 얻었 습니다 . 마술-나는 그것이 그렇게 간단한 지 몰랐습니다. ...
midnite

@midnite 아, 맞다, 당신은 디스크의 이름을 바꿀 수 없습니다. 그런 다음 심볼릭 링크를 사용하십시오.
Gilles

0

디스크 유형 / 모델에만 바인딩 된 / 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.