rootfs.ext2制作


root@ubuntu:~/rv/ # ls output/modules/lib/modules/
5.12.3-bdong-dev
root@ubuntu:~/rv/ # ls output/modules/lib/modules/5.12.3-bdong-dev/
build  kernel  modules.alias  modules.alias.bin  modules.builtin  modules.builtin.bin  modules.builtin.modinfo  modules.dep  modules.dep.bin  modules.devname  modules.order  modules.softdep  modules.symbols  modules.symbols.bin  source
root@ubuntu:~/rv/ # dd if=/dev/zero of=rootfs.ext2 bs=1M count=16
16+0 records in
16+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 0.027542 s, 609 MB/s
root@ubuntu:~/rv/ # ls
buildroot  dn.sh  libmetal  linux  OpenAMP  opensbi  output  qemu  README.md  rootfs.ext2  rtos  tarball  toolchains  u-boot
root@ubuntu:~/rv/ # mkfs.ext2 rootfs.ext2
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done                            
Creating filesystem with 16384 1k blocks and 4096 inodes
Filesystem UUID: 2b9718ac-463b-4b7c-ba30-a29e83ebedeb
Superblock backups stored on blocks: 
        8193

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

root@ubuntu:~/rv/ # mkdir /data5
root@ubuntu:~/rv/ # mount rootfs.ext2  /data5
root@ubuntu:~/rv/ # cp -r  output/modules/lib/  /data5
root@ubuntu:~/rv/ # ls /data5/
lib  lost+found
 
root@ubuntu:~/rv/ # umount /data5
root@ubuntu:~/rv/ # 

启动

qemu-system-riscv64 -M virt -m 512M -smp 2 -bios fw_jump.bin -kernel Image -append "rootwait root=/dev/vda"  -drive file=rootfs.ext2,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=net0,hostfwd=::2222-:22 -device virtio-net-device,netdev=net0 -nographic 

rootfs.ext2没有init

[    0.694886] NET: Registered protocol family 17
[    0.697241] 9pnet: Installing 9P2000 support
[    0.698031] Key type dns_resolver registered
[    0.699446] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
[    0.726776] EXT4-fs (vda): mounting ext2 file system using the ext4 subsystem
[    0.740639] EXT4-fs (vda): mounted filesystem without journal. Opts: (null)
[    0.741374] VFS: Mounted root (ext2 filesystem) readonly on device 254:0.
[    0.746050] devtmpfs: error mounting -2
[    0.777616] Freeing unused kernel memory: 220K
[    0.780019] Run /sbin/init as init process
[    0.781295] Run /etc/init as init process
[    0.782049] Run /bin/init as init process
[    0.783079] Run /bin/sh as init process
[    0.783940] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
[    0.784981] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.7 #2
[    0.785461] Call Trace:
[    0.785834] [] walk_stackframe+0x0/0xaa
[    0.786229] [] show_stack+0x32/0x3e
[    0.786529] [] dump_stack+0x74/0x8e
[    0.786819] [] panic+0xfc/0x2b2
[    0.787090] [] kernel_init+0xec/0xf8
[    0.787375] [] ret_from_exception+0x0/0xc
[    0.787893] SMP: stopping secondary CPUs
[    0.789062] ---[ end Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance. ]---
QEMU: Terminated

正常的有

root@ubuntu:/home/ubuntu/demo_bin# mkdir demo
root@ubuntu:/home/ubuntu/demo_bin# mount rootfs.ext2.bak demo
root@ubuntu:/home/ubuntu/demo_bin# ls demo/
bin  dev  etc  lib  lib64  linuxrc  lost+found  media  mnt  opt  proc  root  run  sbin  sys  tmp  usr  var
root@ubuntu:/home/ubuntu/demo_bin# ls demo/lib
ld-2.32.so                   libanl.so.1     libatomic.so.1.2.0  libcrypt.so.1  libdl.so.2     libm-2.32.so        libnss_dns.so.2       libpthread-2.32.so  libresolv.so.2  libutil-2.32.so
ld-linux-riscv64-lp64d.so.1  libatomic.so    libc-2.32.so        libc.so.6      libgcc_s.so    libm.so.6           libnss_files-2.32.so  libpthread.so.0     librt-2.32.so   libutil.so.1
libanl-2.32.so               libatomic.so.1  libcrypt-2.32.so    libdl-2.32.so  libgcc_s.so.1  libnss_dns-2.32.so  libnss_files.so.2     libresolv-2.32.so   librt.so.1      modules
root@ubuntu:/home/ubuntu/demo_bin# ls demo/lib/modules/
5.10.7
root@ubuntu:/home/ubuntu/demo_bin# 
os