FreeBSD的boot0阶段介绍

FreeBSD的boot0阶段介绍

2007-04-27      来源:FreeBSD中文         作者:
关键词:    FreeBSD       BSD       SD   

让我们看一下文件/boot/boot0。这是一个仅512字节的小文件。如果在FreeBSD安装过程中选择“bootmanager”,这个文件中的 内容将被写入硬盘MBR 如前所述,INT 0x19指令装载MBR,也就是boot0的内容,至内存地址0x7c00。再看文件sys/boot/i386/boot0/boot0.s,可以猜想 这里面发生了什么 - 这是引导管理器,一段由 Robert Nordier书写的令人起敬的程序片段。

MBR里,也就是boot0 里,从偏移量0x1be开始有一个特殊的结构,称为分区表。其中有4条记录(称为分区记录),每条记录16字节。分区记录表示硬盘如何被划分,在 FreeBSD的术语中,这被称为slice(d)。16字节中有一个标志字节决定这个分区是否可引导。有仅只能有一个分区可设定这一标志。否 则,boot0的代码将拒绝继续执行。

一个分区记录有如下域:

    *1字节 文件系统类型
*1字节 可引导标志
*6字节 CHS格式描述符
*8字节 LBA格式描述符

一个分区记录描述符包含某一分区在硬盘上的确切位置信息。LBA和CHS两种描述符指示相同的信息,但是指示方式有所不同:LBA (逻辑块寻址,Logical Block Addressing)指示分区的起始扇区和分区长度,而CHS(柱面 磁头扇区)指示首扇区和末扇区。 引导管理器扫描分区表,并在屏幕上显示菜单,以便用户可以选择用于引导的磁盘和分区。在键盘上按下相应的键后,boot0进行如下动作:

    *标记选中的分区为可引导,清除以前的可引导标志
*记住本次选择的分区以备下次引导时作为缺省项
*装载选中分区的第一个扇区,并跳转执行之

什么数据会存在于一个可引导扇区(这里指FreeBSD扇区)的第一扇区里呢?正如你已经猜到的,那就是boot2。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将FreeBSD中的用户0改为999,您需要在root用户下进行以下步骤: 1. 打开 /etc/passwd 文件,找到以 root 开头的行,将第三个字段(即用户ID)从0改为999。 2. 打开 /etc/group 文件,找到以 root 开头的行,将第三个字段(即组ID)从0改为999。 3. 在 /etc 目录下创建一个文件名为 login.conf 的文件。 4. 打开 login.conf 文件,复制下面的内容并保存: ``` root:\ :passwd_format=blf:\ :path=/sbin /usr/sbin /bin /usr/bin /usr/local/sbin /usr/local/bin /root/bin:\ :umask=022:\ :charset=UTF-8:\ :lang=en_US.UTF-8:\ :setenv=MAIL=/var/mail/root:\ :setenv=BLOCKSIZE=K:\ :setenv=SHELL=/bin/csh:\ :setenv=TERM=xterm-color:\ :setenv=FTP_PASSIVE_MODE=YES:\ :setenv=PAGER=more:\ :setenv=EDITOR=vi:\ :setenv=VISUAL=vi:\ :setenv=LC_ALL=en_US.UTF-8:\ :setenv=LESS=X:\ :setenv=SSH_AUTH_SOCK=/tmp/ssh-add.XXXXXXXX:\ :setenv=SSH_AGENT_PID=YYYY:\ :setenv=SSH_TTY=/dev/ttyv0:\ :setenv=SSH_CONNECTION=IPADDRESS:PORTNUMBER IPADDRESS:PORTNUMBER:\ :setenv=SSH_CLIENT=IPADDRESS PORTNUMBER PORTNUMBER:\ :setenv=DISPLAY=:0 ``` 注意:您需要将IPADDRESS和PORTNUMBER替换为实际的IP地址和端口号。您也可以根据需要修改其他环境变量。 5. 运行以下命令更新配置: ``` cap_mkdb /etc/login.conf ``` 6. 重启系统以使更改生效。 请注意,修改root用户的用户ID可能会影响某些系统工具和应用程序的正常运行,因此在进行此操作之前,务必要仔细考虑和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值