가능하다면 전체 시스템을 RAM에 로드하려면 조언이 필요합니다. 다음 상황을 상상해 봅시다.
DVD에서 LIVE OS를 부팅하고 루트 lsblk로 로그인합니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 2.9G 1 loop
sda 8:0 0 19.1G 0 disk
|-sda1 8:1 0 1G 0 part
`-sda2 8:2 0 18.1G 0 part
sr0 11:0 1 1024M 0 rom
VPN이 필요하기 때문에 네트워크 부팅에 ipxe를 사용할 수 없습니다. 여기서 유일한 옵션은 DD를 사용하고 기존 /dev/sda를 내 사용자 정의 alpine.img로 덮어쓰는 것입니다.
나는 qemu와 apline linux virt 이미지를 사용할 것입니다.
지금까지 완료한 단계는 다음과 같습니다.
- iso에서 Alpine Linux를 부팅하고 /dev/sda를 생성합니다.
- sda는 다음과 같이 부팅 파티션만 마운트 지점으로 사용합니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1G 0 disk
├─sda1 8:1 0 300M 0 part /boot
- /boot 디렉토리에 다음을 복사했습니다.
/boot/
├── alpine-rootfs.tar.gz
├── System.map-virt
├── boot -> .
├── config-virt
├── extlinux.conf
├── initramfs-virt
├── ldlinux.c32
├── ldlinux.sys
├── libcom32.c32
├── libutil.c32
├── lost+found
├── mboot.c32
├── menu.c32
├── vesamenu.c32
└── vmlinuz-virt
extlinux.conf에는 다음이 포함됩니다.
# Generated by update-extlinux 6.04_pre1-r15
DEFAULT menu.c32
PROMPT 0
MENU TITLE Alpine/Linux Boot Menu
MENU HIDDEN
MENU AUTOBOOT Alpine will be booted automatically in # seconds.
TIMEOUT 10
LABEL virt
MENU LABEL Linux virt
LINUX vmlinuz-virt
INITRD initramfs-virt
APPEND root=/dev/ram0 modules=sd-mod,usb-storage,ext4 quiet rootfstype=ext4
initramfs-virt에 다음 코드를 추가했습니다.
# Create a RAM disk with a filesystem (adjust the size as needed)
mkdir -p /sysroot
mount -t tmpfs -o size=512M tmpfs /sysroot
# Extract the contents of your root filesystem (e.g., Alpine Linux) to the RAM disk
tar -xzvf /path/to/your/alpine-rootfs.tar.gz -C /sysroot
# Pivot to the RAM disk as the new root filesystem
exec switch_root /sysroot /sbin/init
불행하게도 부팅 프로세스가 실패합니다. 여기서 내가 뭘 잘못하고 있는지 제안할 수 있는 사람이 있나요?
여기서 중요한 점은 다음에 대한 솔루션이 있다는 것입니다.
- 복구 DVD를 부팅한 후 dd를 사용하여 기존 /dev/sda를 내 사용자 정의 alpine.img로 덮어씁니다.
- 다음번에는 사용자 정의 alpine.img에서 부팅하고 시스템을 RAM에 로드합니다.
- 셸에 로그인한 후 SSH 터널을 생성하고 최종 운영 체제를 배포합니다.