RAID를 담당하는 하드웨어가 손상되어 교체된 후 제대로 부팅이 중지된 서버(SUSE Linux Enterprise Server)를 수리해야 합니다.
다음 메시지가 나타나면서 시작 프로세스가 중단되었습니다.
Waiting for device /dev/disk/by-id/scsi-360{...}-part1
구조 시스템을 실행하기 위해 SLES 11의 라이브 ISO를 찾으려고 했지만 12~15개만 찾을 수 있었습니다. 그래서 버전 15를 다운로드하고 거기에서 구조 시스템을 실행했습니다.
여기에서 발견된 scsi ID(오류와 동일)가 /dev/disk/by-id/scsi-.....에 있는 것과 다르기 때문에 fstab이 올바르지 않다는 것을 알 수 있습니다.
이 문제를 해결하기 위해 찾은 내용에 따르면 fstab을 올바른 ID 또는 파티션 이름(sda, sdb...)으로 수동으로 변경하면 문제가 해결됩니다. 그래서 파티션 이름을 변경하고(여기서 디스크 ID만 입력해야 할까요?) 웹에서 안내를 따라가다가 아주 잘못된 일을 했습니다. fstab을 변경한 후 실행해야 grub-install --root-directory=/mnt /dev/sda
하지만 SLE 15와 함께 라이브 USB를 사용하고 있으므로 grub은 사용할 수 없고 grub2만 사용할 수 있습니다. 그래서 grub2-install을 실행합니다. 그러면 grub Legacy와 함께 grub2가 설치됩니다. 이제 부팅하려고 하면 grub 오류가 발생합니다.Welcome to GRUB! error: disk 'hd1,msdos1' not found. Entering rescue mode...
이제 문제가 어디에 있는지 잘 모르겠습니다. 애벌레가 두 마리 있어서 그런 걸까요? (그렇다고 가정합니다.) 그렇다면 내 계획은 grub2를 제거하고 이것을 실행하는 것입니다.도구우분투 라이브 펜을 사용해보세요. 하지만 grub2를 제거하는 방법은 무엇입니까?
아니면 문제가 다른 곳에 있습니까?
/disk/by-id/ 대신 /dev/sdx를 사용하도록 변경한 후의 fstab입니다.
유닉스 전문가의 도움을 부탁드립니다.
내가 확인한 blkids에 해당하는 파티션을 얻으려면 (여기에는 약간의 부정확성이 있을 수 있지만 우분투 라이브 USB를 사용하여 파티션을 탐색할 수 있었기 때문에 올바른 것 같습니다...)
chroot를 사용하여 grub 구성 파일을 확인하십시오.
고쳐 쓰다:
mkinitrd를 실행하면 오류가 발생합니다. (
Root device(/dev/sda1) not found
sdX의 모든 참조를 by-id로 변경하면 동일한 문제가 발생하며 partition-id와 동일한 오류가 표시됩니다.)
실행하면 yast bootloader
콘솔 업데이트가 중지됩니다. Ctrl+C를 누른 후에도 마찬가지입니다. 그러나 "restart"를 입력했는데 작동했으므로 계속 입력이 발생합니다.
답변1
당신의 이야기를 살펴보는 중이지만...
부팅 프로세스가 다음 메시지와 함께 중단됩니다: /dev/disk/by-id/scsi-360{...}-part1 장치를 기다리는 중
Linux에서 파일 시스템을 마운트하는 방법에는 여러 가지가 있습니다.
- 이름별(예: /dev/sda)
- 귀하의 질문과 같은 by-id
- 태그별, 분할된 태그 세트 포함
- 다른 한두 가지가 더 있습니다. 관심이 있으시면 Google에 문의하세요.
제 생각에는 설명하지 않을 많은 문제를 피하기 위해 id나 uuid로 마운트하는 것이 더 좋습니다. 그러나 상황이 바뀔 때 scsi-id를 업데이트하는 것을 잊어버리면 쉽게 실패할 수 있습니다. 새로운 RAID 컨트롤러는 기존 볼륨에 다른 scsi-id를 제공하는데, 이는 문제입니다.
by-name
하나의 디스크 또는 하나의 RAID 볼륨만 있는 한 설치는 안전합니다. 그러면 항상 이렇겠죠 /dev/sda#
. 그래서 내 제안은
- 시동 디스크를 제외한 다른 모든 디스크를 제거합니다.
- 운영 체제에는 하나의 부팅 디스크 또는 RAID 볼륨만 있습니다. 다른 모든 디스크에서 케이블을 일시적으로 분리합니다.
- 이는 부팅 파티션이 OS 루트 파티션과 동일한 디스크 또는 RAID 볼륨에 있다고 가정합니다. 기술적으로 부팅 파티션을 루트 파티션이 아닌 다른 디스크에 배치할 수 있지만 타당한 이유가 없으면 그렇게 하고 싶지 않습니다. .
- 마운트된 루트 파티션과 스왑
/etc/fstab
만 참조하도록 파일을 편집하십시오 ./dev/sda
기술적으로 fstab에 부팅 또는 efi 파티션이 필요하지 않으며 부팅을 위한 요구 사항도 아닙니다. 첫 번째 사진으로 볼 때 오타인 것 같은데sdd1
,swap
그렇죠sda
?sdd
다른 디스크이기 때문입니다sda
. 기술적으로 부팅하고 시스템을 실행하기 위해 스왑을 설치할 필요가 없으므로 올바른 파티션 번호가 있는/dev/sda# / defaults 0 0
루트 파티션 하나만으로 루트 파티션을 마운트 할 수 있습니다.#
- SLES 11은 다음과 같은 점에서 훌륭합니다.엘리요GRUB 또는 GRUB2 대신. elilo를 사용하고 있다는 것을 알고 있다면 다음을 수행해야 합니다
elilo.conf
.부팅 파티션아래 것보다는/etc/
. 여기서는 오래되고 잘못된 파티션인 scsi-id를 통해 호출된 부팅 파티션에 대한 참조를 볼 수 있습니다./dev/sda#
디스크(또는 RAID 볼륨)가 하나만 있도록 간단히 변경할 수 있습니다 . 여기서 #은 올바른 파티션 번호(보통 1)입니다. 동일한 아이디어나 원칙이 grub에도 적용됩니다. grub에서 디스크의 scsi-id에 대한 모든 이전 참조를 수정해야 합니다sda
. 이제 시스템을 부팅한 다음 모든 것에 대해 새 scsi-id를 인식하고 업데이트하면 됩니다. elilo.conf 또는 grub 파일 및/etc/fstab
.
splash=silent
로 변경하는 것을 고려해보세요 splash=verbose
.
라이브 부팅 CD와 사진을 사용하여 올바른 정보를 표시했으므로 /dev/disk/by-id
기술적으로 모든 내용을 입력할 수 있지만 dev/sda#
먼저 입력한 다음 복사하여 붙여넣는 것이 더 쉽습니다.
마지막 사진에는 이라고 적혀 있습니다 root = /dev/disk/by-id/blabla
. 디스크별 ID로 표시된 모든 곳에서 /dev/sda#
a가 있으면 로 변경하고, part1
# = 1, part2
# = 2 등으로 변경합니다. sles 11의 grub 명령이 "나를 편집하지 마십시오"라고 표시된 menu.lst 편집 외에 어떻게 적절한 업데이트를 수행하는지 모르겠습니다. 부팅 파티션에서 menu.lst를 수동으로 편집할 수 있으며 지금은 작동하지만 새 커널 업데이트가 발생하면 전역 grub 템플릿(아마도 /etc 아래)을 참조하므로 이 문제가 다시 발생하게 됩니다. 죄송합니다. 저는 RHEL7에서만 알고 grub2-mkconfig
편집합니다 /etc/default/grub.conf
. sles11에서 grub 또는 grub2에 어떤 프로그램이 사용되는지 알아내야 합니다.