
나는 e2label과 친구 프로그램이 디스크 파티션에 레이블을 부착하는 데 사용된다는 것을 알고 있습니다.
e2label /dev/sda1 bla
내가 하고 싶은 것은 뭔가 다른 것입니다. 즉, 파티션이 아닌 하드 드라이브용 레이블(예: /dev/sda)을 만들고 싶습니다.
가능합니까? 그렇다면 어떻게?
편집: 배경: HD 베이가 여러 개인 상황에서 물리적 베이의 도어에 (종이) 라벨을 붙이고 거기에 넣은 디스크에 논리적으로 동일한 라벨을 붙이고 싶습니다.
편집 2: 이것은 Ubuntu Linux 12.04 서버에 관한 것입니다.
EDIT3: GPT 파티션에도 partlabel이 있는데, 이는 parted 등을 사용하여 설정할 수 있습니다. 바라보다https://serverfault.com/q/681088/76442
답변1
귀하의 원래 질문에 대한 좋은 답변이 이미 있으므로 디스크 표시와 관련된 질문의 배경에 초점을 맞추겠습니다.
저는 드라이브의 일련 번호를 사용하여 핫 스왑 베이의 레이블을 인쇄합니다. 이는 드라이브를 고유하고 일관되게 식별하는 가장 좋은 방법입니다. 어떤 베이나 어떤 컨트롤러가 연결되어 있어도 변경되지 않습니다.
Linux를 사용하는지 아니면 다른 Unix를 사용하는지 언급하지 않았지만 Linux에서는 /를 보면 제조사, 모델 및 일련 번호가 포함된 디스크 목록(및 제외하려는 파티션)을 얻을 수 있습니다. dev/disk/by-id/ 디렉토리. 다음 bash 별칭이 이에 유용하다는 것을 알았습니다.
alias list_disks='find /dev/disk/by-id/ -iname 'scsi-*' | grep -v -- -part | while read disk ; do echo $(readlink $disk | sed -e s:../../:: ) $(basename $disk); done'
(일치 항목은 SATA 및 SAS 드라이브를 포함하여 모든 "scsi와 유사한" 드라이브를 찾습니다. 또한 scsi-*
SATA 드라이브만 있는 시스템에서도 작동합니다.)ata-*
예를 들어, 내 ZFS 서버 시스템 중 하나에서는 다음 출력이 생성됩니다.
# 디스크 목록 유형 | sdb scsi-SATA_WDC_WD10EACS-00Z_WD-WCASJ2195141 sdc scsi-SATA_WDC_WD10EACS-00Z_WD-WCASJ2114122 sdd scsi-SATA_ST31000528AS_9VP4P4LN sde scsi-SATA_ST31000528AS_6VP3FWAG sdf scsi-SATA_ST31000528AS_9VP509T5 sdg scsi-SATA_ST31000528AS_9VP4RPXK sdh scsi-SATA_OCZ-VECTOR_OCZ-0974C023I4P2G1B8 sdi scsi-SATA_OCZ-VECTOR_OCZ-8RL5XW08536INH7R sdj scsi-SATA_ST31000528AS_9VP18CCV SDK scsi-SATA_WDC_WD10EARS-00Y_WD-WMAV50933036
보시다시피 /dev/disk/by-id 목록에는 각 드라이브의 제조업체와 모델은 물론 일련 번호도 포함되어 있습니다. 이는 LSI SAS-2008 컨트롤러의 SATA 포트 또는 SAS 포트에 연결되는 SATA 드라이브입니다.
라벨 프린터를 연결하면 출력물을 기반으로 라벨을 쉽게 인쇄할 수 있습니다 list_disks
. 나는 오래된 수동 라벨 프린터를 사용했습니다. 왜냐하면 그것이 제가 가진 전부였기 때문입니다. 인쇄된 라벨에는 제조업체/모델이 아닌 일련 번호만 포함되어 있습니다(필요한 경우 드라이브를 식별하는 데 충분함). 레이블은 드라이브에 장애가 발생하여 교체해야 할 때 유용합니다.
답변2
이것이 우리가 이야기하고 있는 Linux라면 udev
원하는 것을 달성하기 위해 이를 사용하여 장치에 대한 심볼릭 링크를 생성할 수 있다고 생각합니다. 을 보면 다음 내용으로 /etc/udev/rules.d
불리는 파일이 있다는 것을 알 수 있습니다 .70-persistent-cd.rules
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"
/dev/cdrom
그 목적은 PCI 버스 주소로 식별되는 장치에 대한 심볼릭 링크를 생성하는 것입니다 . HDD(베이 번호? 경험이 없어서)를 사용하여 HDD를 식별하고 위와 유사한 구문을 사용하여 심볼릭 링크(예:)를 추가하면 /dev/bay1
원하는 것을 달성 할 수 있습니다. 규칙 작성에 관한 다음 기사가 udev
도움이 될 수 있습니다.
노트
답변을 주신 slm에게 감사드립니다. 이 솔루션은 디스크가 아닌 HDD 베이에만 라벨을 지정한다는 점에 유의하세요. 따라서 레이블을 사용 /dev/bay1
하고 /dev/bay2
A 드라이브가 베이 1에 있고 드라이브 B가 베이 2에 있는 경우 /dev/bay1
디스크 A는 참조되고 /dev/bay2
디스크 B는 참조됩니다. 어떤 이유로 A와 B 디스크가 교체된 경우 귀하의 /dev/bay1
질문 에 따르면 /dev/bay2
이것이 귀하의 의도라고 생각됩니다. 내가 틀렸다면 정정해주세요.
답변3
파티션에 레이블을 지정하는 것이 아니라 파일 시스템에 레이블을 지정하는 것입니다. 이러한 파일 시스템은 파일의 파티션, 전체 디스크, 네트워크 블록 장치에 있을 수 있습니다. 상관없습니다.
그렇습니다. ext2/3/4 파일 시스템이 바로 위에 있으면 해당 /dev/sda
파일 시스템과 동일한 레이블을 붙일 수 있습니다 /dev/sda1
.
이제 직접 파일 시스템이 없지만 /dev/sda
예를 들어 /dev/sda
(GPT, MBR, LVM 등을 사용하여) 여러 파티션으로 분할된 경우 분명히 e2label /dev/sda
.
GPT 파티션에서는 파티션 이름을 지정할 수 있으므로 대규모 단일 섹터 파티션을 만들고 이 이름을 사용하여 디스크를 식별할 수 있습니다. c
의 명령을 사용하여 이 작업을 수행 할 수 있습니다 gdisk
.
답변4
파티션 대신 디스크에 레이블을 지정할 수 있는지 여부에 대한 질문에 대답하려면 '아니오'입니다. 나는 이것을 할 수 있는 어떤 방법도 모른다.
@JosephR이 설명한 방법을 사용할 수 있지만 이 설정은 시스템에 따라 다르므로 해당 HDD를 다른 시스템으로 가져가면 그가 제안한 "레이블"이 손실됩니다. 의미 있는 방식으로 디스크에 연결되어 있지 않습니다.
그런데 이 명령을 사용하여 다른 드라이브의 레이블 및 UUID 설정을 볼 수 있습니다 blkid
.
예
$ blkid
/dev/sda1: LABEL="SYSTEM_DRV" UUID="XXXXXX" TYPE="ntfs"
/dev/sda2: LABEL="Windows7_OS" UUID="XXXXXX" TYPE="ntfs"
/dev/sda3: LABEL="Lenovo_Recovery" UUID="XXXX" TYPE="ntfs"
/dev/sda5: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext4"
/dev/sda6: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXXfG93LA" TYPE="LVM2_member"
/dev/mapper/vg_grinchy-lv_root: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="ext4"
/dev/mapper/vg_grinchy-lv_swap: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="swap"
/dev/mapper/vg_grinchy-lv_home: UUID="XXXXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXXX" TYPE="ext4"