Min*_*nix 5 block-device files linux-kernel
我有几个脚本,可以为我构建 Linux live CD。
我有几个内核,我自己构建用于这些内核。几周前用内核构建了一张这样的 Live CD,一切正常,我仍然可以从收集的构建文件构建它。
当试图从头开始构建完全相同的 Live CD 时,它收集相同的内核,它不会启动。
我比较了几周前构建目录中的内核和现在使用的内核,并diff
声明它们是相同的。
cmp bzImage kernel/vmlinuz-4.15.18
返回 0
> md5sum bzImage kernel/vmlinuz-4.15.18
7add044e080dc32e7810bf803450c95c bzImage
7add044e080dc32e7810bf803450c95c kernel/vmlinuz-4.15.18
Run Code Online (Sandbox Code Playgroud)
stat
有以下几点要说:
File: bzImage # works
Size: 7996976 Blocks: 15624 IO Block: 4096 regular file
Device: 811h/2065d Inode: 3714381 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ me) Gid: ( 1000/ me)
Access: 2019-01-08 20:00:48.842172091 +0100
Modify: 2018-12-10 15:43:47.428001000 +0100
Change: 2018-12-10 15:43:47.428001000 +0100
Birth: -
File: kernel/vmlinuz-4.15.18 # doesn't work
Size: 7996976 Blocks: 15432 IO Block: 4096 regular file
Device: 811h/2065d Inode: 538209 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ me) Gid: ( 1000/ me)
Access: 2019-01-08 18:49:41.205420092 +0100
Modify: 2019-01-08 16:12:03.858957307 +0100
Change: 2019-01-08 16:12:03.858957307 +0100
Birth: -
Run Code Online (Sandbox Code Playgroud)
唯一明显的区别是块号,对于不起作用的文件大小来说,它似乎太小了。这里发生了什么?
脚本对内核的作用示例:
# create disk and partition
guestfish disk-create image.img raw 1000000 # kb
guestfish -- add image.img : run : part-add /dev/sda primary $BOOT_START_SECTOR $BOOT_END_SECTOR
guestfish -- add image.img : run : mkfs ext4 /dev/sda1 label:l_boot
# copy linux file hierarchy onto partition
guestfish -- add image.img : run : mount /dev/sda1 / : copy-in rootfs/* /
# mount and copy kernel from build dir onto vdi
guestfish -- add image.img : run : mount /dev/sda1 / : mount-local "mnt/" : mount-local-run
# [...]
cp iso/boot/bzImage mnt/vmlinuz # the kernel
# install extlinux on top
guestfish -- add image.img : run : mount /dev/sda1 / : extlinux /
Run Code Online (Sandbox Code Playgroud)
我还在创建的 vdi(不是构建系统中的那个)上运行stat
并md5sum
复制了文件,结果与上面的 kernel/vmlinuz 相同。
归档时间: |
|
查看次数: |
112 次 |
最近记录: |