네트워크 부팅 시스템 클러스터를 설정하려고 하는데 초기 성공 후 최근에 수행한 작업과 관련이 없는 이상한 문제에 직면했습니다.
나는 다음 지침을 따랐습니다.라즈베리 파이 클러스터, 제 경우와 관련이 없는 부분은 건너뛰었습니다.
- 6단계: 컴퓨팅 노드 이미지 생성
- 9단계: chroot 환경 설정 및 테스트
- 12단계: 이미지에서 패키지 업그레이드 및 설치
- 14단계: 네트워크 부팅을 활성화하도록 이미지의 initramfs를 수정합니다.
- 16단계: FTP 서버 구성
- 17단계: 컴퓨팅 노드에 대한 SSH 액세스 구성
- 20단계: NFS 서버 설정
지금까지는 매우 훌륭했습니다. 시스템이 부팅되었습니다(다른 목적을 위해 DHCP와 TFTP를 설정했습니다). 공유된 OS는 Debian 12이고 콘솔에서 루트로 로그인할 수 있습니다. 이것은 menuentry
GRUB에 있습니다:
menuentry 'Boot Debian 12' {
set background_color=black
linux /debian12/boot/vmlinuz-6.1.0-9-amd64 console=tty0 ip=dhcp root=/dev/nfs ro nfsroot=192.168.50.9:/image/debian12,vers=3,nolock panic=60 ipv6.disable=1 rootwait
initrd /debian12/boot/initrd.img-6.1.0-9-amd64
}
fstab
아직 설정하지 않았기 때문에 부팅 이미지의 콘텐츠가 비어 있습니다. 이는 문제가 되지 않았습니다.
그러나 오늘 부팅 시 이 문제가 발생했습니다("/root/dev에 /dev를 마운트하지 못했습니다: 잘못된 장치 간 링크").
나는 내 인생에서 이것이 어떻게 일어 났는지 상상할 수 없습니다. 내 메모, 기억 또는 상상에서 /dev
마운트할 참조를 찾을 수 없으며 /root/dev
ramdiskfs( )의 압축을 푼 후에도 /image/debian12/boot/initrd.img-6.1.0-9-amd64
그러한 내용에 대한 참조를 찾을 수 없습니다. 내용의. 그렇다면 가장 큰 질문은 "어떻게"입니까?
편집 1
좀 더 깊이 파고든 후 init
initrd에서 스크립트를 발견했습니다.
unpack the initrd:
root@vogon:~/test# unmkinitramfs /image/debian12/boot/initrd.img-6.1.0-9-amd64 .
root@vogon:~/test# ll
total 8
drwxr-xr-x 3 root root 4096 Jun 26 12:28 early/
drwxr-xr-x 7 root root 4096 Jun 26 12:28 main/
root@vogon:~/test# ll main
total 28
lrwxrwxrwx 1 root root 7 Jun 26 12:28 bin -> usr/bin
drwxr-xr-x 3 root root 4096 Jun 26 12:28 conf/
drwxr-xr-x 6 root root 4096 Jun 26 12:28 etc/
-rwxr-xr-x 1 root root 6556 Apr 10 2022 init
lrwxrwxrwx 1 root root 7 Jun 26 12:28 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Jun 26 12:28 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Jun 26 12:28 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Jun 26 12:28 libx32 -> usr/libx32
drwxr-xr-x 2 root root 4096 Jun 22 11:28 run/
lrwxrwxrwx 1 root root 8 Jun 26 12:28 sbin -> usr/sbin
drwxr-xr-x 5 root root 4096 Jun 26 12:28 scripts/
drwxr-xr-x 8 root root 4096 Jun 26 12:28 usr/
이는 여러 시스템 디렉터리를 마운트하려고 시도하는 곳인 것 같지만 /root
이 문제를 해결하는 방법을 찾지 못했습니다.
답변1
일반적으로 이 오류는 initrd에 (실제) 루트 파일 시스템에 대한 파일 시스템 드라이버가 없거나 해당 파일 시스템 아래에 있는 것, 즉 루트 이미지가 마운트되어야 하는 dm/loop 장치 등이 없을 때 발생합니다. 거기에 클러스터가 설정되어 있다는 점을 고려하면 루트를 원격으로 마운트하려고 시도하는 것 같습니다. initrd에 net fs(예: nfs) 드라이버가 없어서 실패할 수 있습니다. (Initramfs 쉘은 일반적으로 누락되어 있지만 lsmod
어떤 커널 모듈[및 드라이버]이 로드되어 있는지 확인할 수도 있습니다 cat /proc/modules
.) 또한 grub(또는 사용 중인 부트로더)의 UUID[또는 네트워크 파일 시스템의 경우 네트워크 경로]가 잘못 구성될 수 있습니다. 같은 오류가 발생합니다. 네트워크 경로를 확인하려면 initramfs 프롬프트에서 수동으로 설치해 보세요.