可能であれば、システム全体をRAMにロードするにはアドバイスが必要です。次の状況を想像してみましょう。
DVDからLIVE OSを起動し、root 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トンネルを作成して最終的なオペレーティングシステムを展開します。