정전 후 외장 USB 하드 디스크가 /dev/sda가 됩니다. /dev/sdc로 수정하는 방법은 무엇입니까?

정전 후 외장 USB 하드 디스크가 /dev/sda가 됩니다. /dev/sdc로 수정하는 방법은 무엇입니까?

오늘 퓨즈가 끊어져 소규모 서버가 종료되었습니다.

서버에 USB-HDD가 연결되어 있지만 약 3~4개월 전에 연결한 이후로 서버를 완전히 종료한 적이 없으며(전원이 꺼지지 않음) 가끔 sudo reboot.

USB-HDD는 아래에 나열되어 있으므로 /dev/sdc를 통해 파티션을 마운트했습니다 sudo mount /dev/sdc1 /media/hdd5-usb-1.

SSD도 장착되어 있어서 /dev/sdb정확한 fdisk -l모습은 다음과 같습니다.

Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ece66

Device     Boot  Start       End   Sectors   Size Id Type
/dev/sda1  *      2048    499711    497664   243M 83 Linux
/dev/sda2       501758 500117503 499615746 238.2G  5 Extended
/dev/sda5       501760 500117503 499615744 238.2G 8e Linux LVM


Disk /dev/sdb: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CD3F3DA1-2901-45A0-B6E9-2BEEA36F3E78

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 1000214527 1000212480  477G Linux filesystem


Disk /dev/mapper/n3150--vg-root: 222.4 GiB, 238769143808 bytes, 466345984 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/n3150--vg-swap_1: 15.9 GiB, 17028874240 bytes, 33259520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdc: 4.6 TiB, 5000981077504 bytes, 9767541167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: 0B9E1A83-476F-47AE-8234-2D29497F55CA

Device     Start        End    Sectors  Size Type
/dev/sdc1   2048 9767541133 9767539086  4.6T Linux filesystem

정전 후 자동 서버 시작 후 항목은 다음과 같습니다.

Disk /dev/sda: 4.6 TiB, 5000981077504 bytes, 9767541167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: 0B9E1A83-476F-47AE-8234-2D29497F55CA

Device     Start        End    Sectors  Size Type
/dev/sda1   2048 9767541133 9767539086  4.6T Linux filesystem


Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ece66

Device     Boot  Start       End   Sectors   Size Id Type
/dev/sdb1  *      2048    499711    497664   243M 83 Linux
/dev/sdb2       501758 500117503 499615746 238.2G  5 Extended
/dev/sdb5       501760 500117503 499615744 238.2G 8e Linux LVM


Disk /dev/sdc: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: CD3F3DA1-2901-45A0-B6E9-2BEEA36F3E78

Device     Start        End    Sectors  Size Type
/dev/sdc1   2048 1000214527 1000212480  477G Linux filesystem


Disk /dev/mapper/n3150--vg-root: 222.4 GiB, 238769143808 bytes, 466345984 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/n3150--vg-swap_1: 15.9 GiB, 17028874240 bytes, 33259520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

분명히 SSD의 데이터베이스가 부팅 /dev/sdb1파티션 에 갑자기 나타나고 /media/ssd1USB HDD라고 생각되는 것이 실제로 탑재된 SSD이기 때문에 매우 불쾌한 문제가 있는 것 같습니다.

이런 일이 다시 발생하지 않도록 하려면 어떻게 해야 합니까? 하드웨어를 특정 /dev/sd*항목에 "고정"하는 방법은 무엇입니까?

답변1

/dev/sdX절대 고정된 이름을 얻으려고 해서는 안 됩니다. 이러한 이름을 직접 사용해서는 안 됩니다.

당신이 해야 할 일은 아래 제공된 자동 감지 식별자로 디스크(또는 디스크 파티션)를 참조하는 것입니다 /dev/disk/. 사용 가능한 옵션 중에는 /dev/disk/by-id/디스크 장치의 일련 번호와 관련된 항목이 있습니다. 따라서 두 개의 동일한 디스크라도 모호함 없이 구별될 수 있습니다. 트리의 모든 항목은 실제 항목에 대한 심볼릭 링크 /dev/disk/일 뿐이지만 /dev/sdX, 발견한 대로 동적일 수 있습니다. 시스템의 표시 또는 감지 순서는 중요 하지만 (또는 적어도 ) 중요 /dev/sdX하지 않습니다 ./dev/disk//dev/disk/by-id/

일부 항목에는 동일한 구문이 있습니다 /etc/fstab. LABEL= UUID= PARTUUID= PARTLABEL=해당 항목을 일치시킵니다 /dev/disk/by-{label,uuid,partlabel,partuuid}/. 이게 뭐야?fstab(5)매뉴얼 페이지는 다음과 같이 말합니다.

LABEL=<label>또는 UUID=<uuid>장치 이름을 대체할 수 있습니다. 이는 권장되는 접근 방식입니다.장치 이름은 일반적으로 하드웨어 감지 순서와 일치하며 추가 디스크가 추가되거나 제거되면 변경될 수 있습니다.. 예를 들어, LABEL=Boot또는 UUID=3e6be9de-8139-11d1-9106-a43f08d823a6. (파일 시스템에 레이블을 설정하려면 e2label(8), xfs_admin(8) 또는 fatlabel(8)과 같은 파일 시스템별 도구를 사용하십시오).

다음은 이러한 항목에 대한 흥미로운 Archlinux 위키 페이지입니다.

https://wiki.archlinux.org/index.php/Pertant_block_device_naming

관련 정보