SLES를 시작하고 램디스크에서 실행하고 싶습니다. PXE 부팅이 가능하도록 머신을 설정하고 PXE 부팅 프로세스의 일부로 루트 파일 시스템인 이미지를 한 단계씩 실행한 다음 부팅합니다.
혹시 이런 일이나 비슷한 일을 해본 사람이 있나요?
내 생각에는 이것이 initrd
너무 작고 기능이 부족하더라도 내가 원하는 것과 거의 같습니다. 그래서 나는 최소한의 설치를 한 다음 cpio를 사용하여 나만의 사용자 정의를 만들었습니다 initd
. (약 350M로 크지만 이 목적에는 충분합니다.)
fsck
시작하려고 할 때 문제가 발생했습니다 /dev/shm/root
. 이런 일이 발생하지 않도록 하는 올바른 방법은 무엇입니까? (설정을 시도해 보았지만 /etc/fstab
제대로 작동하지 않았습니다.) 다음 옵션으로 READONLYROOT를 강제로 실행하도록 sysconfig 파일을 설정했습니다. 이를 통해 전환된 지점까지 init 프로세스를 시작할 수 있었지만 /etc/init.d/rc3.d
이제는 계속할 수 없습니다.
어떤 제안이나 아이디어가 있거나 다른 사람이 이미 이 작업을 수행했다면 좋을 것입니다.
추신. 설정은 1TB RAM을 갖춘 대규모 노드이며 OS에 로컬 파일 시스템을 제공하고 싶지 않습니다. 대안은 NFS 서버를 루트 파일 시스템으로 사용하는 것이지만 NFS 트래픽을 원하지 않으므로 RAM 디스크는 좋은 선택인 것 같습니다.
답변1
나는 좋은 진전을 보이고 있습니다.
fsck 프로세스에 파일 시스템 유형 예외로 ramfs를 추가하기 위해 /etc/init.d/boot.d/boot.rootfsck 파일을 편집했습니다. (라인 79).
aufs|tmpfs|afs|cifs|nfs|novell|smb|ramfs|UNKNOWN*) MAY_FSCK=0 ;;
이렇게 하면 더 이상 sysconfig에 READONLYROOT를 사용할 필요가 없습니다.
이 작업을 수행한 후 pxelinux.cfg를 설정하여 다음과 같은 부팅 라인을 얻습니다.
LABEL SLES11 InMemory OS
KERNEL suseBig/vmlinuz-3.0.74-0.6.8-default
APPEND initrd=suseBig/suseImage rdinit=/sbin/init
TIMEOUT 100
suseImage 파일은 작동 중인 SLES 설치의 전체 루트 파일 시스템에 대한 cpio 아카이브이지만 루트에 대해 /etc/fstab 행이 수정되었습니다. (다른 작업 OS(다른 디스크)에서 이 작업 SLES 환경에 액세스하여 CPIO 아카이브를 구축해야 합니다.)
rootfs / rootfs defaults 0 0
이 모든 작업이 완료되면 노드가 성공적으로 부팅되고 이제 PXE를 통해 네트워크를 통해 부팅할 수 있는 SLES 램디스크의 작동 버전이 생겼습니다. (따라서 시작이 느리지만 OS에 네트워크 트래픽이 없습니다.) 지속성은 없지만 애플리케이션 레이어에서 문제를 해결했습니다.