GNULinux编程课件第3章_第1页
GNULinux编程课件第3章_第2页
GNULinux编程课件第3章_第3页
GNULinux编程课件第3章_第4页
GNULinux编程课件第3章_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章Linux系统的定制郑谦益、韩京宇第3章Linux系统的定制郑谦益、韩京宇内容提要磁盘管理引导加载程序grubLinux内核定制Linux应用环境的初始化内容提要磁盘管理磁盘管理基本概念盘片盘面磁头磁道柱面扇区磁盘管理基本概念磁盘结构磁盘结构DiskPartitions整个存储设备被分成互不重叠的若干区域,即分区Partition#1Partition#2Partition#3unusedDiskPartitions整个存储设备被分成互不重叠的若MBR硬盘的第一扇区称为主引导记录(MBR,MASTERBOOTRECORD)MBR的长度为512字节。第一部分为引导(PRE-BOOT)区,占了446个字节第二部分为分区表(PARTITIONPABLE),共有64个字节,记录硬盘的分区信息。MBR硬盘的第一扇区称为主引导记录(MBR,MASTERMBR的格式MBR分成三个区:bootloader程序(例如:grub)分区表MBR标识(即0x55,0xAA)MBR标识(2bytes)分区表(64bytes)引导加载片段(446bytes)

512bytesMBR的格式MBR分成三个区:MBR标识(2bytes)磁盘分区分区的了ii型主分区扩展分区逻辑分区磁盘分区分区的了ii型Linux系统中的分区的命名在Linux系统中,磁盘设备和分区的命名有一定的规则,hd代表IDE硬盘,sd代表SCSI硬盘;同类型设备从字符a开始编号,a代表第一个硬盘,b代表第二个硬盘,依次类推。主分区和扩展分区的编号从1到4。扩展分区中的逻辑分区从编号5开始,Linux系统中的分区的命名在实例分析实例分析磁盘格式化工具命令含义n创建一个分区d删除一个分区q退出但不保存w保存退出p显示分区信息m显示帮助信息t改变分区的类型号码fdisk命令语法fdisk[选项]块设备文件功能在块设备上建立、修改和删除分区。磁盘格式化工具命令含义n创建一个分区d删除一个分区q退出但不格式化文件系统选项含义-t选择文件系统类型-c检查设备中是否有坏块-v详细显示模式-N说明i-节点的数量,适用于ext2-m为超级用户预留的块数,默认5%。用于ext2-L说明文件系统的卷标,适用于ext2mkfs命令语法

mkfs[选项][设备名称][区块数]功能在块设备上建立某种类型的文件系统。格式化文件系统选项含义-t选择文件系统类型-c检查设备中是否ext2文件系统ext2是Linux系统默认的的文件系统,支持Unix文件系统的特征。例如,目录、设备文件和链接文件等。从文件系统内部数据结构的角度,可将ext2分为超级快、i-节点表和数据区三个部分ext2文件系统ext2是Linux系统默认的的文件系统,支ext2文件系统超级块包含整个文件系统的布局信息和参数设置。例如,逻辑块大小、i-节点表的区域、文件系统类型和卷标等。可使用dumpe2fs工具来查看文件系统的超级块信息。例如:$dumpe2fs-h/dev/sda2#查看分区/dev/sda2中文件系统的超级快信息i-节点表i-节点表定义了文件系统中所有的i-节点,i-节点用于存放文件的管理信息。例如,文件类型、权限、大小、数据在数据区的分布信息等,但i-节点中不包含文件名,文件名及其对应的i-节点号以目录项的形式保存在目录文件中。ext2文件系统ext2文件系统数据区数据区存放文件的内容,其基本单位为逻辑块。一个文件包含若干个逻辑块,这些逻辑块以编号的形式存放于文件所对应的i-节点中,在读写文件时,根据读写指针的位置,可计算出当前数据所在的逻辑块。ext2文件系统数据区ext2文件系统的结构ext2文件系统的结构ext2文件系统图3-3是ext2文件系统的实例,图中,文件demo.c在i-节点表中的编号为102609,该i-节点中存放了demo.c文件的属性,其中,块号为208的数据块中存放了该文件的内容。使用ls-il命令显示demo.c相关信息。$ls-ildemo.c102609-rw-r--r--1shangsstudent150Jul202011demo.cext2文件系统图3-3是ext2文件系统的实例,图中,文件文件系统的挂载选项含义-t指定文件系统类型-w安装有读/写权限的文件系统-r安装只读文件系统-a安装/etc/fstab中定义的文件系统mount命令语法

mount[选项][设备文件][目录]功能将"设备文件"对应的文件系统挂载至"目录"。文件系统的挂载选项含义-t指定文件系统类型-w安装有读/写权mount命令显示当前文件系统的挂载状况$mount/dev/sda2on/typeext3(rw)noneon/proctypeproc(rw)/dev/sda1on/boottypeext2(rw)noneon/dev/ptstypedevpts(rw,gid=5,mode=620)/dev/sda5on/hometypeext3(rw)noneon/dev/shmtypetmpfs(rw)mount命令显示当前文件系统的挂载状况mount命令将usb挂载至目录/mnt/usb$mount/dev/sdb1/mnt/usb

在挂载usb设备时,应先通过命令fdisk–l查看当前USB设备对应的设备名。

将第1个SCSI磁盘扩展分区第2个逻辑分区(第6个分区)挂载至/mnt目录$mount/dev/sda6/mntmount命令将usb挂载至目录/mnt/usbmount命令将光盘挂载至目录/mnt/cdrom$mount-tiso9660/dev/cdrom/mnt/cdrom/$mount/dev/cdrom/mnt/cdrom在不指定文件系统类型的情况下,系统将自动匹配内核所支持的文件系统类型,若找到匹配的文件系统类型,则成功挂载,否则,失败。mount命令将光盘挂载至目录/mnt/cdrommount命令在实际操作中,直接挂载一个windows分区,中文的文件名和目录名会出现乱码,为了避免这种情况,可指定字符集。挂载fat32的分区:$mount-tvfat–oiocharset=cp936/dev/hda6/mnt/d#cp936代表简体中文挂载ntfs的分区$mount-tntfs-oiocharset=cp936/dev/hda2/mnt/c#cp936为简体中文,cp950为繁体中文mount命令在实际操作中,直接挂载一个windows分区,umount命令umount命令语法umount<挂载点|设备>功能断开设备与挂载点目录的链接umount命令umount命令umount命令实例分析$umount/dev/cdrom#卸载光盘$umount/mnt/cdrom#卸载光盘,若/mnt/cdrom为光盘的挂载点$umount/dev/floppy#卸载软盘$umount/dev/usb//卸载usb盘在卸载某文件系统前,如果有用户正在使用该文件系统,则必须等所有用户结束了对该文件系统的访问后,该文件系统才能被成功卸载。卸载后用df查看。umount命令引导加载程序grub引导加载程序grub引导加载(bootloader)引导程序引导程序是计算机加电后首先执行的代码片段,它是进一步运行后续代码的基础。加载程序加载程序是将操作系统内核搬运至内存适当位置并将控制权移交的的程序片段。引导加载程序引导加载程序往往作为一个整体,完成引导和加载的一系列过程。引导加载(bootloader)引导程序grubgrub(GrandUnifiedBootloader)是桌面Linux发行版中常用的引导加载程序,它是一个基于GNU项目的自由软件,可用于引导多种操作系统。例如,Linux、freebsd和windows等。它提供基于命令行的操作接口,用户可通过命令与grub进行交互。同时,grub也提供了启动配置文件,用户可根据需要对配置文件进行修改,grub在启动时,将根据配置文件的要求,完成对操作系统的加载。grubgrub(GrandUnifGRUB的术语GRUB下的设备名称指定硬盘分区的形式:(hdX,Y)指定整个硬盘的形式:(hdX)GRUB下的文件名(hdX,Y)/path/to/file(fdX)/path/to/fileGRUB的术语GRUB下的设备名称安装grub在磁盘上可同时装有多个操作系统,例如,Linux系统和Windows系统,但不同的安装次序会影响系统的正常启动。例如,先安装Linux后,若需在其他分区安装windows系统,必须至少留有一个主分区,在安装完windows系统后,会发现Linux系统无法正常启动,其主要原因是Windows修改了原先由Linux系统安装的grubMBR,windows的主引导记录不具有引导多操作系统的能力,因此,必须进行恢复。安装grub在磁盘上可同时装有多个操作系统,例如,Linux安装grub重新安装grubMBR,假设stage1和stage2已存放在硬盘第二个分区的/grub目录中。[root@testroot]#grubgrub>root(hd0,1)#挂载第一个硬盘的第二个分区grub>setup(hd0)#安装grub的MBRgrub>quit安装grub重新安装grubMBR,假设stage1和stGRUB引导配置

/etc/grub.conf或者是/boot/grub/menu.lst 内核安装过程已经在GRUB启动引导器的配置文件

“grub.conf”中对新内核的引导进行了适当的配置:titleRedHatLinux(2.4.20-8custom)root(hd0,0)kernel/boot/vmlinuz-2.4.20-8customroroot=LABEL=/initrd/boot/initrd-2.4.20-8custom.imgGRUB引导配置/etc/grub.conf或者是/b#reboot

重新启动系统,并选择新内核进行引导。使用新内核启动#reboot使用新内核启动图形登录系统登录图形登录系统登录Linux系统启动流程biosmbrgrubkernelinitLinux系统启动流程biosmbrgrubkernelingrub的启动过程grub的启动过程Linux内核定制Linux内核定制定制Linux内核的过程1,从上下载Linux-2.6.10.tar.gz2.解压缩linux-2.6.10.tar.gz$tarzxvflinux-2.6.10.tar.gz3.配置Linux内核,根据需要,选择所需模块$makemenuconfig#配置Linux内核4.编译内核映像$makebzImage5.编译模块$makemodules6.安装内核模块$makemodules_install7.安装内核$makeinstall定制Linux内核的过程1,从http://www.ker配置Linux内核配置Linux内核Linux应用环境的初始化Linux应用环境的初始化init进程Linux内核在完成初始化后,创建init进程,其进程号为1,它建立整个应用环境的起点,init进程通过读取配置文件/etc/inittab,决定以何种方式启动Linux系统,inittab是一个不可执行的文本文件,它有若干行指令所组成。init进程Linux内核在完成初始化后inittab的语法结构语法label:runlevels:action:process语义(1)labellabel用来标识输入的值。一些系统只支持2个字符的标签。.(2)runlevels

定义了进行何种处理,系统共定义了7种运行级别,每种运行级别对应一组命令集合,定义哪些命令运行,下面给出系统定义的7种运行级别。(3)action描述了所要采取的动作。(4)process定义了具体的执行程序。inittab的语法结构语法inittab的语法结构inittab的语法结构第3章Linux系统的定制郑谦益、韩京宇第3章Linux系统的定制郑谦益、韩京宇内容提要磁盘管理引导加载程序grubLinux内核定制Linux应用环境的初始化内容提要磁盘管理磁盘管理基本概念盘片盘面磁头磁道柱面扇区磁盘管理基本概念磁盘结构磁盘结构DiskPartitions整个存储设备被分成互不重叠的若干区域,即分区Partition#1Partition#2Partition#3unusedDiskPartitions整个存储设备被分成互不重叠的若MBR硬盘的第一扇区称为主引导记录(MBR,MASTERBOOTRECORD)MBR的长度为512字节。第一部分为引导(PRE-BOOT)区,占了446个字节第二部分为分区表(PARTITIONPABLE),共有64个字节,记录硬盘的分区信息。MBR硬盘的第一扇区称为主引导记录(MBR,MASTERMBR的格式MBR分成三个区:bootloader程序(例如:grub)分区表MBR标识(即0x55,0xAA)MBR标识(2bytes)分区表(64bytes)引导加载片段(446bytes)

512bytesMBR的格式MBR分成三个区:MBR标识(2bytes)磁盘分区分区的了ii型主分区扩展分区逻辑分区磁盘分区分区的了ii型Linux系统中的分区的命名在Linux系统中,磁盘设备和分区的命名有一定的规则,hd代表IDE硬盘,sd代表SCSI硬盘;同类型设备从字符a开始编号,a代表第一个硬盘,b代表第二个硬盘,依次类推。主分区和扩展分区的编号从1到4。扩展分区中的逻辑分区从编号5开始,Linux系统中的分区的命名在实例分析实例分析磁盘格式化工具命令含义n创建一个分区d删除一个分区q退出但不保存w保存退出p显示分区信息m显示帮助信息t改变分区的类型号码fdisk命令语法fdisk[选项]块设备文件功能在块设备上建立、修改和删除分区。磁盘格式化工具命令含义n创建一个分区d删除一个分区q退出但不格式化文件系统选项含义-t选择文件系统类型-c检查设备中是否有坏块-v详细显示模式-N说明i-节点的数量,适用于ext2-m为超级用户预留的块数,默认5%。用于ext2-L说明文件系统的卷标,适用于ext2mkfs命令语法

mkfs[选项][设备名称][区块数]功能在块设备上建立某种类型的文件系统。格式化文件系统选项含义-t选择文件系统类型-c检查设备中是否ext2文件系统ext2是Linux系统默认的的文件系统,支持Unix文件系统的特征。例如,目录、设备文件和链接文件等。从文件系统内部数据结构的角度,可将ext2分为超级快、i-节点表和数据区三个部分ext2文件系统ext2是Linux系统默认的的文件系统,支ext2文件系统超级块包含整个文件系统的布局信息和参数设置。例如,逻辑块大小、i-节点表的区域、文件系统类型和卷标等。可使用dumpe2fs工具来查看文件系统的超级块信息。例如:$dumpe2fs-h/dev/sda2#查看分区/dev/sda2中文件系统的超级快信息i-节点表i-节点表定义了文件系统中所有的i-节点,i-节点用于存放文件的管理信息。例如,文件类型、权限、大小、数据在数据区的分布信息等,但i-节点中不包含文件名,文件名及其对应的i-节点号以目录项的形式保存在目录文件中。ext2文件系统ext2文件系统数据区数据区存放文件的内容,其基本单位为逻辑块。一个文件包含若干个逻辑块,这些逻辑块以编号的形式存放于文件所对应的i-节点中,在读写文件时,根据读写指针的位置,可计算出当前数据所在的逻辑块。ext2文件系统数据区ext2文件系统的结构ext2文件系统的结构ext2文件系统图3-3是ext2文件系统的实例,图中,文件demo.c在i-节点表中的编号为102609,该i-节点中存放了demo.c文件的属性,其中,块号为208的数据块中存放了该文件的内容。使用ls-il命令显示demo.c相关信息。$ls-ildemo.c102609-rw-r--r--1shangsstudent150Jul202011demo.cext2文件系统图3-3是ext2文件系统的实例,图中,文件文件系统的挂载选项含义-t指定文件系统类型-w安装有读/写权限的文件系统-r安装只读文件系统-a安装/etc/fstab中定义的文件系统mount命令语法

mount[选项][设备文件][目录]功能将"设备文件"对应的文件系统挂载至"目录"。文件系统的挂载选项含义-t指定文件系统类型-w安装有读/写权mount命令显示当前文件系统的挂载状况$mount/dev/sda2on/typeext3(rw)noneon/proctypeproc(rw)/dev/sda1on/boottypeext2(rw)noneon/dev/ptstypedevpts(rw,gid=5,mode=620)/dev/sda5on/hometypeext3(rw)noneon/dev/shmtypetmpfs(rw)mount命令显示当前文件系统的挂载状况mount命令将usb挂载至目录/mnt/usb$mount/dev/sdb1/mnt/usb

在挂载usb设备时,应先通过命令fdisk–l查看当前USB设备对应的设备名。

将第1个SCSI磁盘扩展分区第2个逻辑分区(第6个分区)挂载至/mnt目录$mount/dev/sda6/mntmount命令将usb挂载至目录/mnt/usbmount命令将光盘挂载至目录/mnt/cdrom$mount-tiso9660/dev/cdrom/mnt/cdrom/$mount/dev/cdrom/mnt/cdrom在不指定文件系统类型的情况下,系统将自动匹配内核所支持的文件系统类型,若找到匹配的文件系统类型,则成功挂载,否则,失败。mount命令将光盘挂载至目录/mnt/cdrommount命令在实际操作中,直接挂载一个windows分区,中文的文件名和目录名会出现乱码,为了避免这种情况,可指定字符集。挂载fat32的分区:$mount-tvfat–oiocharset=cp936/dev/hda6/mnt/d#cp936代表简体中文挂载ntfs的分区$mount-tntfs-oiocharset=cp936/dev/hda2/mnt/c#cp936为简体中文,cp950为繁体中文mount命令在实际操作中,直接挂载一个windows分区,umount命令umount命令语法umount<挂载点|设备>功能断开设备与挂载点目录的链接umount命令umount命令umount命令实例分析$umount/dev/cdrom#卸载光盘$umount/mnt/cdrom#卸载光盘,若/mnt/cdrom为光盘的挂载点$umount/dev/floppy#卸载软盘$umount/dev/usb//卸载usb盘在卸载某文件系统前,如果有用户正在使用该文件系统,则必须等所有用户结束了对该文件系统的访问后,该文件系统才能被成功卸载。卸载后用df查看。umount命令引导加载程序grub引导加载程序grub引导加载(bootloader)引导程序引导程序是计算机加电后首先执行的代码片段,它是进一步运行后续代码的基础。加载程序加载程序是将操作系统内核搬运至内存适当位置并将控制权移交的的程序片段。引导加载程序引导加载程序往往作为一个整体,完成引导和加载的一系列过程。引导加载(bootloader)引导程序grubgrub(GrandUnifiedBootloader)是桌面Linux发行版中常用的引导加载程序,它是一个基于GNU项目的自由软件,可用于引导多种操作系统。例如,Linux、freebsd和windows等。它提供基于命令行的操作接口,用户可通过命令与grub进行交互。同时,grub也提供了启动配置文件,用户可根据需要对配置文件进行修改,grub在启动时,将根据配置文件的要求,完成对操作系统的加载。grubgrub(GrandUnifGRUB的术语GRUB下的设备名称指定硬盘分区的形式:(hdX,Y)指定整个硬盘的形式:(hdX)GRUB下的文件名(hdX,Y)/path/to/file(fdX)/path/to/fileGRUB的术语GRUB下的设备名称安装grub在磁盘上可同时装有多个操作系统,例如,Linux系统和Windows系统,但不同的安装次序会影响系统的正常启动。例如,先安装Linux后,若需在其他分区安装windows系统,必须至少留有一个主分区,在安装完windows系统后,会发现Linux系统无法正常启动,其主要原因是Windows修改了原先由Linux系统安装的grubMBR,windows的主引导记录不具有引导多操作系统的能力,因此,必须进行恢复。安装grub在磁盘上可同时装有多个操作系统,例如,Linux安装grub重新安装grubMBR,假设stage1和stage2已存放在硬盘第二个分区的/grub目录中。[root@testroot]#grubgrub>root(hd0,1)#挂载第一个硬盘的第二个分区grub>setup(hd0)#安装grub的MBRgrub>quit安装grub重新安装grubMBR,假设stage1和stGRUB引导配置

/etc/grub.conf或者是/boot/grub/menu.lst 内核安装过程已经在GRUB启动引导器的配置文件

“grub.conf”中对新内核的引导进行了适当的配置:titleRedHa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论