⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.html

📁 介绍linux下文件和设备编程
💻 HTML
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 low byte&nbsp; high byte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number of sectors in the partition<br>&nbsp;&nbsp;&nbsp; 所以硬盘可以有4个分区。这四个分区叫做主分区:primary prititions.假如它们不够用,可以设置所谓的扩展分区。&nbsp;&nbsp;&nbsp; 扩展分区包含至少一个逻辑分区。扩展分区的第一个扇区结构类似MBR,它的分区表的第一表项对应第一个逻辑分区。如果存在第二个逻辑分区,那么分区表的第二个表项就包含了一个指针。这个指针指向第一个逻辑分区后面的一个地址。这个地址包含一个分区表。该分区表的第一表项<br>对应第二个逻辑分区。这样就组成一个链表,从而扩展分区可以有任意多的逻辑分区。<br>&nbsp;&nbsp;&nbsp; 每一个主分区和扩展区都包含一个引导扇区。系统只能从这几个地方之一启动。BOOT标志决定哪个区被引导。<br>&nbsp;&nbsp;&nbsp; 原来,只有主分区,因此,MS-DOS的fdisk和大多数同类工具只能激活主分区..MBR的代码要作以下的操作:<br>&nbsp;&nbsp;&nbsp; 1:确定活动分区。<br>&nbsp;&nbsp;&nbsp; 2:使用BIOS,将活跃分区的启动扇区读入。<br>&nbsp;&nbsp;&nbsp; 3:跳到启动扇区的0位置。<br>&nbsp;&nbsp;&nbsp; MBR的空间足够完成这些工作。如上所述,每个分区理论上包含一个引导扇区,而且,存在的第二个硬盘也包含和第一个类似的结构。MBR完全可以容纳一个复杂的引导程序。即所谓的boot manager,动态的决定活动分区。Linux 为我们提供了lilo<p>2 LILO:the linux loader<br>&nbsp;&nbsp; LILO引导扇区包括一个分区表的空间,所以,LILO即可以安装在MBR中,也可以安装在某个分区的引导扇区。LILO拥有DOS引导扇区的所有功能,而且,它还可以引导逻辑扇区和第二硬盘分区。LILO还可以和另外的引导者合作(例如:NT loader),这样,用户就可以有很多选择。<br>(注:以下几个标题,为防止引起歧义,用原文)<br>2.1 LILO started by MS-DOS MBR<br>如果系统至少有一个linux主分区,(非交换区,且在第一硬盘上),那么LILO就可以安装在这些分区中的一个。当 LILO对应分区被激活后,引导过程如下:<br>&nbsp;&nbsp;&nbsp; BIOS 读入 MBR<br>MBR&nbsp; 读入 活跃主分区:LILO所在的分区。<br>LILO 引导Linux或另外的操作系统。<br>要引导其它OS且不用LILO很简单,激活那个分区。Linux分区没有任何变化,非常安全。<p>2.2 LILO started by a boot manager<br>假如用户不想删除老的boot manager,或者某个OS LILO不能引导,可以考虑该途径。<br>1. 2. 假如 boot manager 可以引导第二硬盘分区,linux可以装在第二硬盘上。<br>3 有些 boot manager 甚至可以引导逻辑分区,那LILO就可以装在逻辑分区上。<br>当然,也要注意以下情况:<br>1 某些操作系统直接改写MBR,这会将原来的boot manager破坏。<br>2 重新分区会破坏扩展分区的引导扇区,这是LILO可能要重装。<br>&nbsp;&nbsp;&nbsp; 当安装新的系统时,是否要重新安装(linux)依靠新的boot manager,要么LILO引导扇区被注销,要么boot manager 为它提供一个引导项。重新分区或分区格式化会将LILO和linux全部删除。<p>2.3 LILO占据MBR<br>假如整个linux系统都在第二硬盘上,且第一硬盘没有扩展分区,那么,LILO只有装在MBR上。这样,会将老的MBR冲去,所以,在安装LILO前,要将老的MBR(包括分区表)做一个备份。DOS下有很多工具可以完成这个任务。在linux下,这样备份:<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # dd if=/dev/hda of=/backup/MBR bs=512 count=1<p>写会使用命令:<br>&nbsp;&nbsp;&nbsp; # dd if=/backup/MBR of=/dev/hda bs=446 count=1<br>这样,原来的MBR就被写会但不包括分区表。如果分区表也要恢复,那么bs=512.<br>注意,这样,新的分区表会被破坏!<p>2.4 LILO 文件<br>&nbsp;&nbsp;&nbsp; 与LILO有关的文件通常放在/boot/下,配置文件lilo.conf在/etc/下。包含实际引导系统信息的映射文件有/sbin/lilo安装。对于任何LILO安装,配置文件应该被定置以适合个人需要。<br>The configuration file:配置文件<br>&nbsp;&nbsp;&nbsp; 基本上,配置文件是一些变量赋值。每一行包含一个标志变量或一个变量赋值.配置文件被特殊的变量赋值分成几个区,每个区引导一个linux或其它OS.<br>&nbsp;&nbsp;&nbsp; 下面解释常见的行:<p>boot = device<br>说明那一个设备或哪一个分区包含引导扇区。假如没有给boot赋值,取当前缺省值。<p>compact<br>激活一种模式,在此模式下,LILO一次向BIOS请求读入相邻的几个分区。这极大的缩短了装载时间,特别是从软盘启动。<p>delay=tenths<br>以10秒为单位,规定LILO在引导第一个引导配置前应等待用户的时间。若没有定义,则直接引导。<p>Linear<br>使LILO生成线性地址,而不使用通常的Sector/Head/Cylinder机制。Linux地址机制可以不依赖磁盘的物理结构。<p>install = boot sector<br>&nbsp;&nbsp;&nbsp; 使用指定的boot sector写入引导扇区,缺省用/boot/boot.b<p>disktab=disktab<br>&nbsp;&nbsp;&nbsp; 使用指定的disktab,缺省使用/boot/disktab.disktab保存了硬盘物理结构信息。<p>map=map file<br>说明映射文件的路径。<p>message=file 指<br>定一个文件,该文件的内容将会在LILO引导是被显示。假如没有说明该文件,那么就只会出现&quot;LILO&quot;。<p>verbose=level<br>&nbsp;&nbsp;&nbsp; 说明LILO的调试级别。从0(不显示任何信息)到5(所有的状态信息)。<p>backup = backup file<br>&nbsp;&nbsp;&nbsp; 以前引导扇区内容的备份文件。缺省使用/boot/boot.device number<p>force-backup=backup file<br> 和backup 相同,当时假如备份文件存在,被覆盖。<p>prompt<br>&nbsp;&nbsp;&nbsp; 指定要用户通过键盘选择要引导的内核。不会缺省选择。<p>timeout=tenths<br>设置一个超时值,在此时间内必须有键盘输入,否则用第一个配置。类似,假如超时,就不能再输入密码。一般情况下,该取缺省值,无穷大。<br>&nbsp;&nbsp;&nbsp; 注:delay 与 timeout的区别(joe 认为),delay 是&quot;LILO&quot;出现后用户必须有输入的最长时间。timeout 是用户在按了任意键后,系统等待选择,用户两次击键的最大间隔时间。<p>serial=port,&nbsp;&nbsp;&nbsp; bps parity bits<br>&nbsp;&nbsp;&nbsp; 设置串口参数。如果LILO会从该文件获取串口参数的话。如果其中之一无效,那所有三个参数都无效。Port从四个标准串口选择一个:0对应COM1 或者/dev/ttyS0.。支持的波特率范围为:100-9600。所有校验设置都支持(n:none,e:even,o:odd)bits为7或者8。缺省为serial=0,2400n8.<p>Ignore-table<br>&nbsp;&nbsp;&nbsp; 让LILO忽略被破坏的分区表。<p>fix-table<br>&nbsp;&nbsp;&nbsp; 允许LILO将每个分区的(sector/head/cylinder)地址转化为线性地址。通常,分区地址从cylinder boudary开始。某些操作系统,会改变这一点。由于LILO只能将它的启动扇区写于两种地址都一致的分区上,不正确的3D地址可以用fix-table来纠正。但是,这种纠正不能被保证是永远的,所以重分区以保证对齐cylinderboudary 是最好的选择。<p>password=password<br>&nbsp;&nbsp;&nbsp; 为引导配置设置password<p>restricted<br>&nbsp;&nbsp;&nbsp; 放松对password的限制。只有用户想传附加的启动参数给内核时才需要password<p>optional<br>&nbsp;&nbsp;&nbsp; 允许配置的几个内核有错误的,或者不存在,如果不说明optional,LILO遇到这种情况就会打印一些错误信息然后退出。<p>&nbsp;&nbsp;&nbsp; 每个从LILO引导的配置从image行开始。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Image = kernel<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Label = name<br> Image包含要引导的内核。Label是给用户选择用的。Image行通常指向一个设备, 例如/dev/fd0,可以找到内核的范围用range来注明。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; range = range<br>range可以用start sector -end sector 或者 start sector + length 表示。例如:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image = /dev/fd0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label = floppy<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; range = 1+512<br>以下变量赋值有可能出现:<br>append=string<br>&nbsp;&nbsp;&nbsp; 将string作为引导参数传给内核。例如,硬件参数。<br>literal=string<br>&nbsp;&nbsp;&nbsp; 和append查不多。但是,他会冲掉原来的设置。所以不能被全局说明。<br>ramdisk=size<br>&nbsp;&nbsp;&nbsp; 设置RAM disk的大小。<br>read-only<br>read-write<br>&nbsp;&nbsp;&nbsp; 设置根文件系统的访问方式。<br>root=device<br>&nbsp;&nbsp;&nbsp; 设置根文件系统存在的设备。<br>vga=mode<br>&nbsp;&nbsp;&nbsp; 屏幕设置。可能模式为:normal,extended 和ask. 。<br>以下设置是针对别的操作系统的:<br>loader=loader<br>&nbsp;&nbsp;&nbsp; 说名用来引导操作系统的文件。缺省为 /boot/chain.b . 另外,LILO包含以下的loader:<br>os2_d.b 可以从第二硬盘上引导os/2<br> any_d.b 在引导操作系统之前试图将两个硬盘的次序颠倒,从而可以引导第二硬盘上的os.<br>table=device<br>&nbsp;&nbsp;&nbsp; 说明一个设备,该设备的某个分区上存放要引导的os.假如没有说明table,<br>LILO就不会将该信息传给要引导的osunsafe<br>&nbsp;&nbsp;&nbsp; 关掉对要引导的os的检查。只有要从软盘引导时,才使用该设置。没有该设置,每次map installer开始运行时,引导盘都要插入软驱。<br>The disktab file<br>disktab文件包含LILO要引导的设备的物理结构信息。通常,这些信息可以从设备驱动程序获取。所以,只有这种方法不行时才会用到disktab 文件。在此情况下,如果文件不能用,LILO报告错误信息:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; geo_query_dev HDIO_GETGEO(dev …)<br>或者<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HDIO_REQ not supported for your SISI controller<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Please use /boot/disktab<br>然后,物理结构信息就必须手工地输入。<br># /boot/distab-LILO parameter table<br>#<br>#This table contains the geometry parameters for SCSI and<br># IDE disks,which can not be recognized automatically<br># Entries in this table overwrite recognized parameters!<br>#<br>&nbsp;&nbsp;&nbsp; # Dev. BIOS Secs/ Heads/ Cylin - Par.<br># num. Code track cyLin.&nbsp; Ders. Offset<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -