Alpine LinuxシステムをRAMにロードする方法

Alpine LinuxシステムをRAMにロードする方法

可能であれば、システム全体を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トンネルを作成して最終的なオペレーティングシステムを展開します。

関連情報