b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

一台机器上分区格式化所产生的分区表和FAT磁盘参数表

电脑杂谈  发布时间:2021-06-04 06:02:15  来源:网络整理

使用不同的BIOS启动U盘时(USB-HDD模式),同一个U盘的容量参数——柱面、磁头、扇区数(简称CHS)会被识别不同(证明这可以在不同的机器上安装相同版本的linux,然后插入U盘,使用hdparm /dev/sda命令,可以发现不同机器上的CHS是不同的,即使U盘可以用GRUB启动,使用geometry(也可以看到hd0)命令),这样在一台机器上分区格式化生成的分区表和FAT磁盘参数表按照本机识别的硬盘的CHS来表示,换一个因为本机不同时对方机器识别的CHS不同,这样会造成混淆,好在分区表和FAT磁盘参数表也有相对扇区号的表达方式,这种表达方式是同时,它记录在分区表和磁盘参数表中。这样,这取决于软件使用哪种数据来工作。如果使用CHS,那么另一台机器将无法正常工作。如果使用 LBA 访问磁盘,则不会受到影响。影响——当然,前提是BIOS支持对U盘的LBA访问,即INT13H的扩展。 XP格式化FAT16文件系统分区生成的MBR代码和DOS版本都需要依赖CHS才能工作,所以按照通常的方法在一台机器上制作的可启动U盘在另一台机器上可能无法启动。经测试,各BIOS中移动硬盘的CHS是一样的,与IDE口直连硬盘的CHS是一样的,所以移动硬盘的USB启动基本没有难度。

目前我查到的确实是这个问题,影响启动的程序有:

1、Windows XP和SP1中文版磁盘管理器分区时写入MBR

2、dos5、6、6.22、win95的fdisk写的MBR

3、dos5、6、6.22、win95 格式编写的引导

4、包括windows95 98 98se在内的所有MS DOS的IO.SYS(都需要依靠CHS来识别FAT文件系统)

5、USBoot 生成的 MBR 和引导(同 1)

6、 在 grub 中安装 grldr.mbr 用于 dos 0.41 到 MBR

可能不受此问题影响的程序(未完全测试):

1、win98、98se的fdisk写的MBR

boot写成2、win98、98se(FAT16分区类型必须是0xe才能支持LBA)

3、ntldr 以及PE或XP环境随后启动(当然,否则U盘将无法使用)

联想b470e 无法从u盘启动_u盘无法启动_h81m ds2 u盘无法启动

4、linux下install-mbr程序编写的MBR

5、GNU GRUB 0.95 和0.97 以及使用 grub-install 命令安装的引导代码

6、syslinux3.36 和3.51

7、linux2.4 内核及以上,基本上linux系统的所有程序都不会使用CHS作为FAT文件系统

8、grub chs 0.95 0.97(包含stage1、stage1.5和stage2引导代码)

于是就有了相应的思路来解决这个问题:

1、 强制U盘以USB-CDROM、USB-FLOPPY或USB-ZIP启动,让每个BIOS都有标准可循,不会“自言自语”。这也是目前使用U盘量产工具的基本思路,不过这让SD卡+读卡器的组合没有量产工具让人失望,而且现在的大容量U盘大多没有写保护开关或者读写速度不理想,有时还是需要高速SD卡+读卡器的组合;

2、从活动硬盘启动基本上没问题。

3、 从不受错误 CHS 参数影响的引导加载程序开始,例如 GNU GRUB 或 SYSLINUX,或其他组合。

以下描述了我尝试使用 GNU GRUB、GRUB CHS 和 GRUB for DOS 的方法:

方法一:完全使用grub中文版的stage1、stage1.5、stage2。甘道夫,grub中文版作者。

1、 发现一台运行 GNU GRUB0.95 或 0.97 的机器(Redhat ELAS4 Update0-Update6, ELAS5 Update0-Update1)

h81m ds2 u盘无法启动_u盘无法启动_联想b470e 无法从u盘启动

2、overwrite the stage1、1.5、2 file in grub_for_dos-0.4.1.zip in chinese/boot/grub 到 /usr/share/grub in linux ( 不同这里的版本可能有不同的grub stage镜像路径,大多数情况下是/usr/share/grub),请备份原文件。

3、 插入U盘或移动硬盘进行启动分区,因为有些BIOS只支持USB-HDD的CHS模式,限制启动分区不超过1023*16*63扇区,所以对于通用性,引导分区不能超过511M,类型为0xe。 (阅读Win98se中DOS7.1的启动代码,发现DOS7.1使用0xe来支持LBA启动,它的文件访问也可能使用这个标志,虽然它可能不会用于grub,但它是如果 DOS 7.1 包含在多重引导中,则很有用),设置引导标志并将其格式化为 fat16 文件系统。所有这些都是在 linux 下完成的。 (12 月 29 日更正)

4、 将启动分区挂载到 /mnt

5、grub-install --root-directory=/mnt /dev/sdX,注意不要选择--force-lba,因为linux下的grub与stageX不兼容,机器无法启动

6、 不要理会 /mnt/boot/grub/device.map 文件。该文件被 grub-install 程序使用,安装后无用。

7、umount /mnt 并恢复 /usr/share/grub 内容

可以说遗憾的是没有开启--force-lba选项,所以下一步就是用这个设备启动了,grub命令行下:

1、root(hd0,0),这里指定的舞台图片文件来源是哪里

2、setup --force-lba(hd0),安装,到此为止,grub中文版已经完全安装在MBR了。

这个方法是我原来的方法,但是现在grub中文版已经停止更新了,所以不推荐这个方法。

方法二:用 GNU GRUB 启动后为 dos 加载 grub

1、 找到最新的稳定版linux,如Redhat ELAS5 Update1,将它的GNU GRUB用--force-lba选项直接安装到U盘MBR中(参考方法一,注意不要覆盖这些文件 现在,不要忘记将分区类型设置为 0xe)。

2、将grub_for_dos-0.4.2.zip中的chinese/grub.exe复制到U盘根目录下。

3、 使用GNU GRUB启动后,使用内核/grub.exe和boot命令启动grub.exe,即可​​享受grub for dos的中文菜单,直接支持ntldr和io的功能。系统启动。

好在这个方法可以一直使用最新最稳定的GNU GRUB来处理有bug的BIOS,同时还能享受到中文版grub for dos的便利。我机器上不管是PE还是DOS,这种方式的启动速度都比较慢。甚至菜单显示速度也出奇的慢。不仅是启动过程,启动成功后运行其他程序也很慢。我想是dos中文版grub的原因。我试过中文版grub for dos 0.41、0.42 和0.43 都不理想。

方法三:使用GNU GRUB的stage1、stage1.5和grub0.97中文版stage2混合启动

1、 找到最新的稳定版linux,如Redhat ELAS5 Update1,将它的GNU GRUB用--force-lba选项直接安装到U盘MBR中(参考方法一,注意不要覆盖这些文件 现在,不要忘记将分区类型设置为 0xe)。

2、使用grub_for_dos-0.4.1.zip 将chinese/boot/grub中的stage2文件替换为U盘中的/boot/grub/stage2

这种方法的优点和方法二一样,启动比较快。缺点是这毕竟不是通常的做法。更新 GNU GRUB 版本后可能无法实现,但似乎 GNU GRUB 也停止更新了:-)。在目前的情况下,我个人比较推荐这种方法。

其他尝试:使用syslinux启动grub for dos0.41、0.42 和0.43的grub.exe也成功了,但是启动和运行速度和第二种方法一样慢。

实际应用测试:

现在我自己的工具盘(150速创见2G SD卡+川宇150X SDHC读卡器,题外话:这个读卡器除了支持150速真的很垃圾)是用方法三做的。环境中没有发现启动失败。其中包括 HP DL380G3、G4、DL580、Dell 3850、6850、IBM X345、346、3650 等,当然还有我的台式机和笔记本电脑。

这里补充说明一下:本文只是对影响U盘启动U盘的重要因素之一进行探讨。这种镜像只是对流行做法的改进,改进了 U 盘在不同机器上的启动。不能说成功的可能性就解决了U盘启动U盘的所有问题。本来作为一个研究帖,只是想提供方法,不想提供具体的产品,但是考虑到各种因素,还是放出来给大家测试一下。

因为ghost在恢复的时候会自动把分区类型改为06,所以我用winhex生成了一个1:1的U盘镜像供研究,解压后文件名为U-1gboot.img。为了压缩卷,这个启动盘只有一个假启动菜单。只要开机时出现这个菜单,就认为成功了。

大白菜官网


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-380301-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...