如何修改FreeBSD .gz bootfile?

时间:2014-07-09 23:55:36

标签: linux unix linux-kernel embedded-linux freebsd

我有一个FreeBSD系统的虚拟图像,当我挂载它时,我没有看到/ etc /目录和其他文件,而是文件系统上的一个很大的loader.gz,我认为它是在启动过程。我用gzip解压缩了loader.gz,我得到了它:

$ file loader
loader: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), not stripped

使用grep我能够确认我需要编辑的文件在里面,但是我不知道如何编辑它。我试图安装它没有成功。如何修改loader.gz的内容并再次使用?

你能举个例子吗?

我有一个Linux系统和一台Mac来安装工具和这个FreeBSD图像。

请帮助我。

1 个答案:

答案 0 :(得分:0)

loader程序通常是内核引导过程的最后一个阶段。

最近的图片应该有另一个签名。例如用于记忆棒图像;

> file tmp/FreeBSD-10.0-RELEASE-amd64-memstick.img 
tmp/FreeBSD-10.0-RELEASE-amd64-memstick.img: Unix Fast File system
[v1] (little-endian), last mounted on , 
last written at Fri Jan 17 00:24:02 2014, 
clean flag 1, number of blocks 681040, number of data blocks 679047, 
number of cylinder groups 13, block size 8192, fragment size 1024,
minimum percentage of free blocks 8, rotational delay 0ms, 
disk rotational speed 60rps, TIME optimization

在FreeBSD上安装图像:

# mdconfig -a -t vnode -f tmp/FreeBSD-10.0-RELEASE-amd64-memstick.img -u 1
# mount /dev/md1a /mnt/root/

(Linux具有相同的功能,我只是不记得它的名称。)

此图片包含loader目录中的boot/

# ls /mnt/root/
.cshrc        ERRATA.TXT    README.TXT    boot/         lib/          proc/         sys@
.profile      HARDWARE.HTM  RELNOTES.HTM  dev/          libexec/      rescue/       tmp/
COPYRIGHT     HARDWARE.TXT  RELNOTES.TXT  docbook.css   media/        root/         usr/
ERRATA.HTM    README.HTM    bin/          etc/          mnt/          sbin/         var/
# ls /mnt/root/boot/
beastie.4th         check-password.4th  gptzfsboot          menu.4th            support.4th
boot                color.4th           kernel/             menu.rc             userboot.so
boot0               defaults/           loader*             menusets.4th        version.4th
boot0sio            delay.4th           loader.4th          modules/            zfs/
boot1               device.hints        loader.help         pmbr                zfsboot
boot2               firmware/           loader.rc           pxeboot             zfsloader*
brand.4th           frames.4th          mbr                 screen.4th
cdboot              gptboot             menu-commands.4th   shortcuts.4th

在我的FreeBSD 10系统上,加载器有另一个签名;

/boot/loader: FreeBSD/i386 demand paged executable