当前位置: 首页 > wzjs >正文

个人备案公司网站网站建设优化公司

个人备案公司网站,网站建设优化公司,网站软件应用大全,网站报价收费单在 Linux 0.11 中,磁盘分区信息存储在主引导记录(MBR)中,具体位于磁盘的第一个扇区(即 0 柱面 0 磁头 1 扇区)。分区信息存储位置物理位置:绝对扇区 0(LBA 0)CHS 地址&am…

        在 Linux 0.11 中,磁盘分区信息存储在主引导记录(MBR)中,具体位于磁盘的第一个扇区(即 0 柱面 0 磁头 1 扇区)。

分区信息存储位置

  1. 物理位置

    • 绝对扇区 0(LBA 0)

    • CHS 地址:柱面 0, 磁头 0, 扇区 1

  2. 数据结构

    c

    复制

    下载

    struct partition_table_entry {u8  boot_ind;     // 引导标志 (0x80=活动分区)u8  head;         // 起始磁头u8  sector;       // 起始扇区 (低6位) + 起始柱面 (高2位)u8  cyl;          // 起始柱面 (低8位)u8  sys_ind;      // 分区类型 (0x83=Linux)u8  end_head;     // 结束磁头u8  end_sector;   // 结束扇区 + 结束柱面 (高2位)u8  end_cyl;      // 结束柱面 (低8位)u32 start_sect;   // 分区起始扇区 (相对LBA)u32 nr_sects;     // 分区总扇区数
    } __attribute__((packed));
  3. 在 MBR 中的布局

    偏移量长度内容
    0x000446引导代码
    0x1BE16分区表项 1
    0x1CE16分区表项 2
    0x1DE16分区表项 3
    0x1EE16分区表项 4
    0x1FE2魔数 (0x55 0xAA)

在 Linux 0.11 源码中的实现

关键代码位于:

  1. 引导加载程序
    boot/bootsect.s 中读取 MBR 并检查分区表:

    assembly

    复制

    下载

    load_setup:mov dx, #0x0000      ! 驱动器0, 磁头0mov cx, #0x0002      ! 柱面0, 扇区2mov bx, #0x0200      ! 缓冲区地址: 0x7E00mov ax, #0x0200+4    ! 读取4个扇区int 0x13
  2. 分区表解析
    kernel/blk_drv/hd.c 中的 partition_setup() 函数:

    c

    复制

    下载

    void partition_setup(void) {struct buffer_head *bh;bh = bread(0, 0);  // 读取第0块设备(硬盘)的0扇区(MBR)struct partition_table_entry *p = (struct partition_table_entry *)(0x1BE + bh->b_data);for (int i = 0; i < 4; i++, p++) {hd[i+5].start_sect = p->start_sect;  // 主分区偏移hd[i+5].nr_sects = p->nr_sects;}brelse(bh);
    }
  3. 分区访问
    分区被映射为特殊设备文件:

    • /dev/hd1 - 主分区1

    • /dev/hd2 - 主分区2

    • /dev/hd3 - 主分区3

    • /dev/hd4 - 主分区4


关于 "245 个分区" 的说明

Linux 0.11 不支持 245 个分区,因为:

  1. MBR 分区表仅支持 4 个主分区

  2. 早期内核没有实现扩展分区逻辑

  3. 设备号限制(8位主/从设备号):

    c

    复制

    下载

    // include/linux/fs.h
    #define MAJOR(a) (((unsigned)(a))>>8)
    #define MINOR(a) ((a)&0xff)

    最多支持 256 个设备,包括所有硬盘和分区

若需要更多分区,必须使用:

  1. 扩展分区(Linux 0.11 未实现)

  2. 多块物理硬盘

  3. 后期内核版本(1.x+ 支持扩展分区)


查看分区表的工具方法

  1. 使用 fdisk(在宿主系统):

    bash

    复制

    下载

    fdisk -l /dev/sda

    输出示例:

    text

    复制

    下载

    Device     Boot Start   End Sectors Size Id Type
    /dev/sda1  *     2048 4095    2048   1M 83 Linux
    /dev/sda2        4096 8191    4096   2M 83 Linux
  2. 在 Linux 0.11 中调试

    c

    复制

    下载

    // 在 hd.c 中添加调试打印
    printk("Partition %d: start=%d, sectors=%d\n", i, p->start_sect, p->nr_sects);

http://www.dtcms.com/wzjs/226407.html

相关文章:

  • 无锡哪家做网站好长春网站建设公司
  • 专门做流程图的网站sem搜索
  • ps 矢量素材网站seo搜索引擎实训心得体会
  • 网络服务类型有哪几种网站关键词优化工具
  • 有没有好的ppt网站做参考的百度自动驾驶技术
  • 昆明铁路局建设工程网站企点官网
  • 电子商务做网站百度seo优化工具
  • 大学营销型网站建设实训课程百度影音在线电影
  • wordpress毕业设计武汉关键词seo排名
  • 湘潭做网站价格问下磐石网络竞价账户托管的公司有哪些
  • 做一个网站能挣多少钱深圳网络推广营销
  • 手机网站比例尺寸营业推广策略有哪些
  • 网站建设者属于广告经营者吗seo高端培训
  • 网上商城网站建设规划海外营销推广
  • 成都app制作开发公司安徽关键词seo
  • 网站建设专业网站设计公司物格网深圳互联网公司排行榜
  • 国内有哪些响应式网站如何让自己的网站快速被百度收录
  • 新疆建设兵团第四师中学网站东莞seo优化公司
  • 建设信用卡网站换积分seo研究中心论坛
  • 济南市城乡建设委员会网站辽宁网站seo
  • 网站后台有什么用石家庄今日头条新闻
  • 银川做网站的有哪些网络推广优化seo
  • 国外免费b2b平台有哪些山东济南seo整站优化公司
  • 哈尔滨网站建设1元钱站长统计入口
  • 铁建设文件在什么网站下载搜索引擎优化的主要策略
  • 工信部企业网站认证营销网站建设教学
  • 湖南长沙招聘信息最新招聘2022优化方案官方网站
  • ipad 建网站自己怎样推广呢
  • 大连最繁华的区是哪个区seo网站推广优化
  • 网站建设的计划免费推广引流平台有哪些