QemuでLinuxカーネルイメージを起動するためにinitramfsを変更する方法は?

QemuでLinuxカーネルイメージを起動するためにinitramfsを変更する方法は?

私はM2 Macを使用しています。 aarch64v8/ubuntu dockerコンテナにLinuxカーネルを構築しました。これは docker-compose.yml です。

version: "3"
services:
  dev:
    image: arm64v8/ubuntu
    platform: linux/arm64
    volumes:
      - .:/root/myfolder
    working_dir: /root
    #cpus: 
    network_mode: host
    security_opt:
      - seccomp:unconfined
    cap_add:
      - SYS_PTRACE

linux-5.10.209をダウンロードしてカーネルを構築しました。効率的。私はbusybox-1.36.1をダウンロードして構築しました。それも働いた。

これは私のルートファイルシステムです。

(base) varunnawathey@Varuns-MacBook-Pro rootfs % ls -l
total 0
drwxr-xr-x@ 95 varunnawathey  staff  3040 Feb  3 02:58 bin
drwxr-xr-x   6 varunnawathey  staff   192 Feb  3 03:09 dev
drwxr-xr-x   2 varunnawathey  staff    64 Feb  3 03:03 etc
lrwxr-xr-x   1 varunnawathey  staff    11 Feb  3 03:04 init -> bin/busybox
lrwxr-xr-x@  1 varunnawathey  staff    11 Feb  3 02:58 linuxrc -> bin/busybox
drwxr-xr-x   2 varunnawathey  staff    64 Feb  3 03:03 proc
drwxr-xr-x@ 74 varunnawathey  staff  2368 Feb  3 02:58 sbin
drwxr-xr-x   2 varunnawathey  staff    64 Feb  3 03:03 sys
drwxr-xr-x@  4 varunnawathey  staff   128 Feb  3 02:55 usr
(base) varunnawathey@Varuns-MacBook-Pro rootfs % ls -l dev
total 0
crw-rw----  1 root  staff  0x1000001 Feb  3 03:06 mem
crw-rw----  1 root  staff  0x1000001 Feb  3 03:07 ttyS2
crw-rw----  1 root  staff  0x1000001 Feb  3 03:07 ttyS3
crw-rw----  1 root  staff  0x1000001 Feb  3 03:07 ttyS4

私はこれを実行しました:

sudo find .  -print0 | cpio --null -ov --format=newc | gzip -9 > ../rootfs.cpio.gz

テキストが多すぎますが、ここで何か間違っているようです。

./sbin/tunctl
./sbin/mkdosfs
./sbin/blkid
./etc
./sys
./linuxrc
./dev
cpio: Couldn't list extended attributes
./dev/ttyS4
cpio: Couldn't list extended attributes
./dev/ttyS3
cpio: Couldn't list extended attributes
./dev/ttyS2
cpio: Couldn't list extended attributes
./dev/mem
4302 blocks

rootfsを作成しましたが、成功しませんでした。これが私が付いているところです。 mknodが必要ですが、Dockerコンテナでは許可されていないいくつかの手順があります。

ここで何をすべきかわかりません。 Dockerコンテナの代わりにホストを介してmknodを実行する必要がある場合は、initramfsをどのように作成するのかわかりません。

これはただ中断されます:

qemu-system-aarch64 -M virt -m 256M -kernel linux-5.10.209/arch/arm64/boot/Image -initrd rootfs.cpio.gz -append "root=/dev/mem" -nographic

Dockerコンテナを特権に設定する必要がありますか?どうすればいいですか?

それとも、qemuを使用してカーネルを起動するために必要なものがありませんか?

ベストアンサー1

おすすめ記事