基于USBGRUB引导及CF卡Linux系统剪裁的嵌入式系统构建

基于USBGRUB引导及CF卡Linux系统剪裁的嵌入式系统构建
基于USBGRUB引导及CF卡Linux系统剪裁的嵌入式系统构建

修复更新grub2系统引导

修复更新grub2系统引导 一.修复 如果重装系统或者引导系统崩溃无法进入系统开机引导项从而无法进入以装系统,以Ubuntu Grub2引导为例,详细写一下如何修复之前的系统引导。 (以下说明均以Ubuntu系统为例,其他系统大同小异) 1.放入系统安装盘或这插入刻录好的系统安装U盘,进入系统安装选项,选择试用选项! 2.选择适用之后,进入Ubuntu图形界面,打开终端。 3.选择Ubuntu安装磁盘,如果不确定具体在哪个磁盘,可以用命令查看一下 [plain] sudo fdisk -l 4.挂载Ubuntu系统安装磁盘(我的是在第8磁盘,故为sda8) [plain] sudo mount /dev/sda8 /mnt 5.开始恢复grub2系统引导 [plain] sudo grub-install --root-directory=/mnt/dev/sda 6.执行命令之后,如果没有报错,则恢复成功,重启即可。 二.更新 恢复之后是之前的系统引导界面,如果新安装的系统没有在界面上显示,那么可以进入Ubuntu系统,进行grub2更新。

打开终端,输入 [plain] sudo update-grub2 成功的话,将会出现更新后找到的磁盘上所有系统引导的记录。(以我自己的为例) [plain] hugo@hugo-HP:~$ sudo update-grub2 [sudo] password for hugo: Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.5.0-26-generic Found initrd image: /boot/initrd.img-3.5.0-26-generic Found linux image: /boot/vmlinuz-3.5.0-25-generic Found initrd image: /boot/initrd.img-3.5.0-25-generic Found linux image: /boot/vmlinuz-3.5.0-17-generic Found initrd image: /boot/initrd.img-3.5.0-17-generic Found memtest86+ image: /boot/memtest86+.bin Found Windows 8 (loader) on /dev/sda1 Found CentOS release 6.4 (Final) on /dev/sda3 Found Mac OS X on /dev/sda9 done 之后重启即可。 update-grub这个是Ubuntu专用的吧,其它发行版不一定有,通用的是:sudo grub-mkconfig -o /boot/grub/grub.cfg

win7 linux启动引导项恢复

我电脑本身是win7 系统,之后有装了red hat 。 由于没有经验,在安装linux时选择把引导文件安装在sda 上,这样windows7 原有的引导文件就被覆盖了,变成linux的引导文件。此时,两个系统仍然可以启动,一切正常,但是默认启动的是linux。用过红帽的应该知道,先出现那个进入红帽的倒计时,如果你不按enter ,就直接进红帽了。而你点击回车之后,才出现系统选择界面。那个other 就是你的win7 。如果你把win7 作为主系统的话,每次都得选择,如果一不小心错过了那3秒钟,对不起了只有等半天重启,接着选。这就让人很蛋疼了。 于是我进入win7 之后就自以为是修复引导文件,以为这样就好了。事实上造成更大的错误。 用easyBCD 修复引导文件之后,不仅没有linux启动项了,win7 开机也成盗版了~~~~~所以是正版的要慎重了,提前备份好激活文件。我也就麻烦一下又重新激活······正常进入win7 之后就在想怎么恢复linux 想起不久前曾用rescue模式恢复启动项就准备试试进入rescue模式后挂载系统看了grub.conf 配置文件,没有问题,我就郁闷了。 之后百度才知道原因。“由于操作者不知道grub2分为两部分,一部分(一般情况下)写在了mbr上,另一部分写在了某个分区的/boot/grub目录(如果/boot单独分区,则直接写在对应分区的/grub目录)里面。由于上述操作,致使grub2的mbr里面的那一部分找不到/grub目录里面的那一部分了(或者那一部分已经删除了)。”https://www.360docs.net/doc/627623582.html,/zyf837368104/article/details/7627065上面的链接的文章指明原因所在,但是所提供的方法却不对。之后我又在某论坛(https://www.360docs.net/doc/627623582.html,/thread-1924253-1-1.html)看到,上面文章适用于grub1不适用grub2 。至于两者的差别我不清楚。但是我想,既然引导文件坏了,就重装一次。就敲入grub-install /dev/sda8 (sda8 是linux的/boot分区。至于你的,根据实际情况,貌似可以用find 命令查找)安装成功后重启系统仍然没有linux启动项,就用easyBCD重新创建一个

Linux引导过程的九个步骤

Linux引导过程的九个步骤 【1】硬件和固件以及读入MBR BIOS 或其它固件系统读取硬盘或者其它引导设备(例如,光盘、软盘、网络引导等等)上的 主引导记录。 计算器在接通电源之后,首先由BIOS 进行自检,即进行所谓的POST(Power On Self Test), 然依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入“引导块”。例如,通常BIOS中设置 的引导顺序为第一个IDE硬盘的C分区在最前面,那就是说,计算机开机启动时会把C盘的第0柱面,第0头的第1个扇区读入内存,然跳到那里开始执行。这个扇区有一个大家很熟悉的名字,它就 是: MBR(Main Boot Record)。换句话说,MBR里面存放的是一小段程序以及分区表的数据。 在使用WIN9X和DOS 时,这里面存放的代码就会把分区表里标记为Active 的分区的第一个 扇区(一般存放着操作系统的引导代码)读入内存并跳转到那里开始执行. 【2】引导装载程序运行 x86 系统上的Linux 系统通常使用LILO 或者GRUB。某些老式系统可能使用loadlin 通过 一个中间DOS 分区进行引导。在Power PC® 系统上,这可能是BootX或者yaboot。一般来说,引导装载程序是一种简单的程序,它知道到哪里寻找Linux 内核,可能在几个版本之间 进行选择,甚至可以选择同一计算机上的其它操作系统。 在用LILO 来引导LINUX 时,有两种选择: (a) BIOS->LILO(直接安装在MBR中)->KERNEL 把LILO直接安装在MBR,这时就由BIOS直接把LILO代码调入内存,然跳转执行LILO即可. (b) BIOS->MBR->LILO(安装在活动分区的第一个扇区)->KERNEL 把LILO安装在LINUX分区,必须把LINUX分区设为Active. 这时BIOS调入的是WIN9X/DOS 下的MBR代码,然由这段代码来调入LILO的代码(位于活动分区的第一个扇区). 在过去,对于能够设置可引导分区的最高柱面,最大硬盘大小, 在大硬盘上主分区的位置等等 有许多限制。因为在读入及执行MBR 时,操作系统还没有起来, 所以只能用BIOS 提供的 INT13 来进行磁盘操作,而INT13 只能读写硬盘1024 柱面之前的数据,由此可知任何操作 系统的引导代码都必须在1024 柱面之前。对于LINUX的引导装载程序来说,不管你是使用 方式(a)还是方式(b)来启动,都要保证KERNEL放在1024柱面之前。但因为LINUX不使用INT13 来进行硬盘操作, 所以在KERNEL启动以后, 就有读写1024 柱面以后数据的能力了。 不过, 现在几乎所有硬件系统的BIOS 都得到了改进, 能够处理实际上无限大的硬盘, 因此 现代的引导装载程序(至少是Linux的引导装载程序),对于分区大小或位置已经没什么限制了.

嵌入式Linux系统的搭建与配置过程

1.摘要 (2) 2.UBOOT,LINUX内核,文件系统的介绍及相互关系..3 2.1嵌入式系统简介 (3) 2.2嵌入式Linux概述 (3) 2.3UBOOT简介 (4) 3.UBOOT的启动过程 (6) 4.内核的主要功能和裁剪 (7) 4.1Linux的编译 (7) 4.2嵌入式Linux的配置和剪裁 (8) 5.文件系统的制作过程 (8) 6.交叉编译器的搭建和环境变量的设置 (9) 7.驱动程序的编写过程与关键点 (11) 7.1Linux网络驱动程序的结构 (11) 7.2网络驱动程序的基本方法 (12) 7.3网络驱动程序中用到的数据结构 (12) 7.4常用的系统支持 (14) 7.5编写Linux网络驱动程序中需要注意的问题 (18) 8.参考文献 (20)

嵌入式系统是以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其它设备的控制、监视或管理等功能。其广泛应用于控制领域、消费电子产品等行业,已成为现代电子领域的重要研究方向之一。嵌入式Linux的研究已经成为当前信息技术研究的热点,它的应用蕴含着巨大的商业价值,并且己经广泛的应用于各种信息家电、通讯产品、工业控制中。论文首先介绍了ARM和嵌入式Linux操作系统的特点和当前的发展概况。然后阐述了嵌入式Linux 开发流程以及移植到具体硬件平台需要完成的工作,如U-Boot的移植、Linux内核的编译与裁剪、文件系统的制作、驱动程序的编写等。 关键字:嵌入式;ARM;嵌入式Linux;Linux内核;驱动程序

Linux系统修复

LAB : Linux系统修复 实验目的: 使用linux recuse模式修复Linux系统 实验步骤: 一、人为删除系统关键文件 登陆linux系统之后,依次执行以下命令人为破坏当前linux系统: #cd / #umount /boot ---卸载/boot分区 #rm -rf /boot ---删除/boot目录(boot目录下包含所有GRUB有关的文件) #rm -rf /etc/inittab ---删除init表(此文件定义了系统运行级别和脚本) #rm -rf /etc/rc.d/rc.sysinit ---删除init运行级别脚本文件 #rm -rf /etc/rc.d/rc.local ---删除开机脚本文件 #mv /etc/fstab /etc/fstab.bak ---备份系统挂载表fstab文件(此文件记录了linux分区信息) #sync ---将系统缓冲区的内容写入硬盘(在Linux系统中,当数据需要存入磁盘时,通常会先放到缓冲区内,等到适当的时刻再写入磁盘,如此可提高系统的执行效率) #reboot 经过这一番蹂躏之后,系统肯定是挂了的。。。。。最后一条reboot命令已经无法正常执行了。。。手动重启系统也是无法进入系统了的。。。。。。但是,只要根分区没有被格式化,就可以进入linux修复模式恢复该linux系统。 二、修复linux系统

思路: 恢复fstab文件找到分区→修复引导里的内核文件→修复grub –> 还原init相关文件 1.进入修复模式 通过RHEL5光盘引导进入安装会话,输入linux rescue或按F5键进入rescue修复模式。 进入修复模式之后,系统会提示选择语言Language和键盘类型Keyboard, 直接回车就行了。 系统会再次询问是否配置网络, 选择No,因为修复系统不需要用到网络。。然后会提示如下: Rescue程序将查找当前硬盘上是否有已安装的linux系统,如果找到了的话,就自动挂载到/mnt/sysimage下。选择”Continue”继续,rescue程序会搜索硬盘是否存在已安装过的linux和硬盘分区,最终结果如下图: 搜索结果显示,找不到Linux分区,因为/etc/fstab文件被删除了,所以导致系统无法读取Linux分区,但是如

linux内核启动 Android系统启动过程详解

linux内核启动+Android系统启动过程详解 第一部分:汇编部分 Linux启动之 linux-rk3288-tchip/kernel/arch/arm/boot/compressed/ head.S分析这段代码是linux boot后执行的第一个程序,完成的主要工作是解压内核,然后跳转到相关执行地址。这部分代码在做驱动开发时不需要改动,但分析其执行流程对是理解android的第一步 开头有一段宏定义这是gnu arm汇编的宏定义。关于GUN 的汇编和其他编译器,在指令语法上有很大差别,具体可查询相关GUN汇编语法了解 另外此段代码必须不能包括重定位部分。因为这时一开始必须要立即运行的。所谓重定位,比如当编译时某个文件用到外部符号是用动态链接库的方式,那么该文件生成的目标文件将包含重定位信息,在加载时需要重定位该符号,否则执行时将因找不到地址而出错 #ifdef DEBUG//开始是调试用,主要是一些打印输出函数,不用关心 #if defined(CONFIG_DEBUG_ICEDCC)

……具体代码略 #endif 宏定义结束之后定义了一个段, .section ".start", #alloc, #execinstr 这个段的段名是 .start,#alloc表示Section contains allocated data, #execinstr表示Section contains executable instructions. 生成最终映像时,这段代码会放在最开头 .align start: .type start,#function /*.type指定start这个符号是函数类型*/ .rept 8 mov r0, r0 //将此命令重复8次,相当于nop,这里是为中断向量保存空间 .endr b 1f .word 0x016f2818 @ Magic numbers to help the loader

linux常见故障以及修复办法

查看开机启动顺序: (2) chroot: (3) 用grub来引导 (6) GRUB的概述 (6) 基本说明: (6) 具体的案例: (7) 模拟一些常见问题并且修复 (9) 破坏了sda的MBR中的引导程序 (9) 破坏几个重要的文件: (11) 1)人为的删除系统关键文件: (11) 2)修复linux系统 (12) 2.还原fstab文件。 (13) 3.修复内核和grub (14) 修复/etc/inittab等文件: (17) 遇到的问题: (17)

查看开机启动顺序: 1.GRUB Loading stage2 BIOS向GRUB传递控制权 2.到MBR的GRUB(下面我是显示有一个字母P,因为最开始用无人值守部署安装的时候是设定了密码,所以要密码才能进去的) 接下来是引导内核和加载映像文件。 按住e可以进入它的编辑状态:

3.启动initi进程开始执行rc.sysinit脚本然后初始化环境。 4.挂载文件系统,下面显示的是/etc/fstab开机挂载的东西。 chroot: Linux下的chroot,即change root意为切换用户的根目录,例如将/opt/chroot/目录做为某个用户的根目录,如此将锁定用户在该目录下,从而防止用户访问系统的重要文件进行窃密,或防止用户执行危险操作带来系统损害。 另外,如果某些对外开放的服务(如Apache),一旦被入侵者控制,该入侵者将可能得到系统用户的权限,从而控制整个系统,将这些服务置入chroot环境中运行,即使该入侵者控制了该服务,也还在chroot下,需要更多的时间对chroot进行破解,这样就达到了加固的目的。 什么是shell? Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell 就是围绕内核的外层。当从shell或其他程序向 Linux传递命令时,内核会做出相应的反应。shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用 程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

linux系统及编程基础课后答案

第1章习题答案 1. 什么是Linux? 答:Linux是一款优秀的操作系统,支持多用户、多进程、多线程,实时性好,功能强大且稳定。同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。作为Internet的产物,Linux操作系统由全世界的许多计算机爱好者共同合作开发,是一个自由的操作系统。 2. Linux的主要特点是什么? 答:Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在以下几个方面: 开放性 多用户 多任务 出色的稳定性能 良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用界面。 设备独立性:设备独立性是指操作系统把所有外部设备统一当作文件来看,只要安装它们的驱动程序,任何用户都可以像使用文件那样操作并使用这些设备,而不必知道它们的具体存在形式。 丰富的网络功能:完善的内置网络是Linux的一大特点,Linux在通信和网络 功能方面优于其他操作系统。其他操作系统不包含如此紧密的内核结合在一起的联接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

可靠的安全性 良好的可移植性:可移植性是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。 3. Linux的主要组成包括什么? 答:Linux主要组成为: Linux内核(Kernel):内核(Kernel)是系统的心脏,是运行程序和管理硬件设备的内核程序,决定着系统的性能和稳定性,实现操作系统的基本功能。 Linux的Shell:Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。Shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核执行。Shell编程语言具有普通编程语言的很多特点,用这种编程语言编写shell程序与其他应用程序具有同样的效果。 Linux 文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。通常是按照目录层次的方式进行组织,用户能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限、文件的共享程度。 Linux 实用程序(utilities)和应用程序(Applications):标准的Linux系统都有一套成为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。 4. Linux与Windows的主要区别是什么? 答:主要区别: (1)Linux的应用目标是网络 Linux的设计定位于网络操作系统。虽然现在已经实现Linux操作系统的图形界面,但仍然没有舍弃文本命令行。由于纯文本可以非常好地跨越网络进行工作,所以Linux

嵌入式Linux系统期末考试简答题、运用题

简答题与应用题 什么是嵌入式系统?主要有什么特点? 以应用为中心,以计算机技术为基础的, 并且软件硬件是可剪裁的, 能满足应用系统对功能、 可靠性、成本、 体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的 计算机系统相比,特点为: (1) (2) (5) 嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。 4、什么是Linux ?什么是嵌入式 Linux ? 答:严格来讲,Linux 是指由Linux 本人维护并不断更新的内核 。 一个嵌入式Linux 系统指的是一个基于 Linux 内核的,但不包含有关这个内核的任何专业的库或是用户工具 的嵌入式系统。 Linux 内核构建嵌入式操作系统有什么优势(优良特性)? 程度代码是可以获取的,可靠度高; 有完整的源码,软件丰富并且免费; 得到众多硬件生产家的广泛支持;包括 cpu 、计算机外 围设备 完善的通信协议、软件标准和文件管理机制; 提供完全免费且优秀的开发工具; 广泛的社群支持 无需购买lice nee ,是免费的; 不依赖特定厂商、供应商; 成本相对低廉。 6、 RTOS (嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客 户服务程序。中断程序响应中断并完成 是在固定时间内。 7、什么是实时LinUX ?涉及到哪些软硬件内容? 答:实时LinUX ( RT-Linux )通过在Linux 内核与硬件中断之间增加一个精巧的可抢先的实时内核 ,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度 ,标准的Linux 内核的优先级最低,可以被实时进程抢断。 正 常的Linux 进程仍可以在Linux 内核上运行,这样既可以使用标准分时操作系统即 Linux 的各种服务,又能提 供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。 能在规定的时间内完成对突发事件的处理的 Linux 系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux 内核构成,并简要说明各部分的功能? 答: MMU :内存管理单元,完成地址映射(应用虚拟地址方式) VFS :虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方 1、 答: 面向特定应用,一般都有实时要求; 集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集 成系统; 嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 嵌入式系统的软 硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要 考虑的主要问题。 嵌入式系统软件一般都固化在存储器芯片中。 (3) (4) 5、 用 答:( 1) (2) (3) (4) (5) (6) (7) (8) () 2、 答: 3、嵌入式操作系统的作用是什么?

USB引导安装linux系统

图解制作U盘引导安装系统的方法 此方法可以安装linux,windows等多种操作系统(这里我们以GhostXPSP3.iso和ESX-4.1.0-update01-348481.iso镜像为例),制作简单,绝对实用,注意在使用时候一定要先备份好自己U盘的资料,因制作前先要格式化自己的u盘为“Fat32”格式,格式化后可以进行USB引导的制作了 一、利用bootice工具制作对U盘写入主引导记录 方法: 1.打开bootice程序 2.选择目标磁盘(这里我们选择要做引导的U盘,)点击“主引导记录M”如下图: 3.如下图选择黄色标记那个选项,选择好后点击“安装/配置”

4.接下来直接点击“写入磁盘”,如下图 5.系统会提示你“Grub4dos引导程序配置修改成功”,点击“确定”,整个引导制作过程完成,如下图: 二、拷贝和编辑一些主要文件 1.拷贝grub.exe,grldr,文件到U盘根目录下(必须放在根目录下)如下图

2.在u盘根目录下新建menu.lst文件(这个是启动菜单,你可以放好几种系统镜像,安装时候,再去菜单选择要安装的系统,这里因是用GhostXPSP3.iso和ESX-4.1.0-update01-348481.iso镜像为例故只做这两个的菜单),menu.lst文件里写入如下内容如下: timeout 10 default /default title GhostXPSP3 为菜单选择的标题(名字可以随便取) map (hd0,0)/winpe/GhostXPSP3.iso (hd32) 镜像存放的位置 map --hook chainloader (hd32) title ESX4.1 map (hd0,0)/ESX4.1/ESX-4.1.0-update01-348481.iso (hd32) map --hook chainloader (hd32) 3.去U盘根目录下建立两个文件夹“winpe”,“ESX4.1”这两个分别是镜像的位置如下图: 4.将“GhostXPSP3.iso”和“ESX-4.1.0-update01-348481.iso”两个镜像跟别考入“winpe”,“ESX4.1”两个文件夹下,到此整个制作过程结束 三、安装方法 1.把要安装系统的电脑启动项更改为从USB启动

Linux常见问题及处理方法

一、处理linux系统故障的思路 作为一名合格的linux系统管理员,一定要有一套清晰、明确的解决故障思路,当问题出现时,才能迅速定位、解决问题,这里给出一个处理问题的一般思路: 重视报错提示信息:每个错误的出现,都是给出错误提示信息,一般情况下这个提示基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。 查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。 分析、定位问题:这个过程是比较复杂的,根据报错信息,结合日志文件,同时还要考虑其它相关情况,最终找到引起问题的原因。 解决问题:找到了问题出现的原因,解决问题就是很简单的事情了。 从这个流程可以看出,解决问题的过程就是分析、查找问题的过程,一旦确定问题产生的原因,故障也就随之解决了。 二、忘记linux root密码 这个问题出现的几率是很高的,不过,在linux下解决这个问题也很简单,只需重启linux系统,然后引导进入linux的单用户模式(init 1),由于单用户模式是不需要输入登录密码的,因此,可以直接登录系统,修改root密码即可解决问题。 下面是详细的处理方法,这里我们以Redhatlinux为基准,操作步骤如下: (1)重启系统,待linux系统启动到grub引导菜单时,找到当前系统引导选项(可以按方向键展开隐藏的菜单,单处理器只有一个引导项,多处理器有3个或3个以上引导项,一般默认选项就是系统当前引导选项)。 (2)通过方向键将光标放到当前系统引导项上,然后按键盘字母“e”,进入编辑状态。 (3)然后通过上下键,选中带有kernel指令的一行,继续按键盘字母“e”,编辑该行,在行末尾加个空格,然后添加single,类似与这样: kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet single (4)修改完成,按回车键,返回到刚才的界面。 (5)最后按键盘“b”,系统开始引导。 这样系统就启动到了单用户模式下,这里的单用户根windows下的安全模式类似,在单用户模式下,只是启动最基本的系统,网络以及应用服务均不启动。单用户模式启动完毕,系统会自动进入到命令行状态下,类似与“sh-3.1#”,然后直接执行passwd,回车,系统会提示输入新的root密码两次,最后会看到修改密码成功的提示,这样就完成了root密码的修改。如果需要正常启动系统,现在只需输入“init 3”,就进入了多用户模式。用root用户重新登录系统,看看设置的新密码是否生效。 三linux系统无法启动的解决办法 导致linux无法启动的原因有很多,常见的原因有如下几种: 文件系统配置不当,比如/etc/inittab文件、/etc/fstab文件等配置错误或丢失,导致系统错误,无法启动。

linux grub 引导启动过程详解

linux grub 引导启动过程详解 2008-01-08 17:18 这几天看了很多文档,算是对linux的启动过程有了比较细致的了解. 网上有很多文章谈到这方面的内容,但总觉得没有一篇完全的解析linux启动的 细节,下面是我小弟在学习的过程中总结出来的一些东东.这个是完整的linux启动过程, 不涉及内核,但是我觉得比较详细哦. (由于本人比较懒,这一段是从网上抄的) 机器加电启动后,BIOS开始检测系统参数,如内存的大小,日期和时间,磁盘 设备以及这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被配置成首先检查 软驱或者光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设 备中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区, 寻找用于装载操作系统的指令。装载操作系统的这个程序就是boot loader. linux里面的boot loader通常是lilo或者grub,从Red Hat Linux 7.2起,GRUB( GRand Unified Bootloader)取代LILO成为了默认的启动装载程序。那么启动的时候grub是如何被载入的呢 grub有几个重要的文件,stage1,stage2,有的时候需要stage1.5.这些文件一般都 在/boot/grub文件夹下面.grub被载入通常包括以下几个步骤: 1. 装载基本的引导装载程序(stage1),stage1很小,网上说是512字节,但是在我的系统上用du -b /boot/grub/stage1 显示的是1024个字节,不知道是不是grub版本不同的缘故还是我理解有误.stage1通常位于主引导扇区里面,对于硬盘就是MBR了,stage1的主要功能就是装载第二引导程序(stage2).这主要是归结于在主引导扇区中没有足够的空间用于其他东西了,我用的是grub 0.93,stage2文件的大小是107520 bit. 2. 装载第二引导装载程序(stage2),这第二引导装载程序实际上是引出更高级的功能, 以允许用户装载入一个特定的操作系统。在GRUB中,这步是让用户显示一个菜单或是输入命令。由于stage2很大,所以它一般位于文件系统之中(通常是boot所在的根 分区). 上面还提到了stage1.5这个文件,它的作用是什么呢你到/boot/grub目录下看看, fat_stage_1.5 e2fs_stage_1.5 xfs_stage_1.5等等,很容易猜想stage1.5和文件系统 有关系.有时候基本引导装载程序(stage1)不能识别stage2所在的文件系统分区,那么这 时候就需要stage1.5来连接stage1和stage2了.因此对于不同的文件系统就会有不同的stage1.5.但是对于grub 0.93好像stage1.5并不是很重要,因为我试过了,在没有stage1.5 的情况下, 我把stage1安装在软盘的引导扇区内,然后把stage2放在格式化成ext2或者fat格式的软盘内,启动的时候照常引导,并不需要e2fs_stage_1.5或者fat_stage_1.5. 下面是我的试验: #mkfs.ext2 /dev/fd0 #mount -t ext2 /dev/fd0 /mnt/floppy #cd /mnt/floppy #mkdir boot #cd boot #mkdir grub (以上三步可用mkdir -p boot/grub命令完成) #cd grub #cp /boot/grub/{stage1,stage2,grub.conf} ./ #cd; umount /mnt/floppy

嵌入式Linux系统

10-1 嵌入式Linux系统概述 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 Linux在所有的操作系统中,Linux 是一个发展最快、应用最为广泛的操作系统。 所谓嵌入式Linux,是指Linux 在嵌入式系统中应用,而不是什么嵌入式功能。实际上,嵌入式Linux 和Linux 是同一件事。 10-2 Linux启动过程综述 一. Bootloader 二.Kernel引导入口 三.核心数据结构初始化--内核引导第一部分 四.外设初始化--内核引导第二部分 五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash 附:XDM方式登录 Bootloader 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。 在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等),firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的设置;而SRM

windows与linux系统引导分区系统修复

【转】 [命令]windows与linux系统引导分区系统修复 2011-09-08 16:26 转载自分享 最终编辑孤独散步者的梦 环境说明: windows与linux系统并存情况下: 一、修复Linux的GRUO引导菜单: 在windows重装,卸载之后, linux引导分区修复,因为windows清除MBR中的多重开机管理程序,重新安装GRUB即可: 用Linux启动盘,或安装盘或livecd,引导进入救援模式: 插入linux系统盘是第一张,然后在出现界面时按F4或F5键,进入linux rescue模式,或直接输入“linux rescue”,再提示设定语系(选择English),键盘类型(选择US),选择是否启用网卡(选择NO),选择如何挂载Linux分区(一般选择Rdad-Only),然后进入sh#命令行! (1)、方法一:然后进入sh#命令行! 输入:“chroot /mnt/sysimage”(切换目录); 输入:“grub-install /dev/hda”(重装GRUB,/dev/hda指linux系统安装在第一硬盘) (2)、方法二:进入#sh>后: sh#grub (输入grub回车) grub>root (hd0,1) (注:这里hd0指第一硬盘,1指第一分区,不清楚按TAB键。)grub>setup (hd0) (注:指安装GRUO在第一硬盘上) 二、修复Windows引导菜单: 在linux系统删除之后,修复系统主引导扇区,出windows引导菜单方法: (1)、用启动盘进入DOS,执行: A:\> fdisk /mbr (2)、用windows2000以上的安装光盘,引导进入“系统故障修复台”: C:\windows\>fixmbr (3)、使用SPFDisk程序修复mbr: 到https://www.360docs.net/doc/627623582.html,下载SPFDisk软件,做成启动盘!引导系统! A:\>spf2k3rc (执行exe程序) A:\>spfdisk /mbr GRUB使用指南kes,2007-06-15 09:29:13 GRUB使用指南 GRUB是一个多重开机管理工具,它可用来激活Linux、BSD、OS/2、BeOS与 Windows95/98/NT等众多操作系统,GRUB是一个独立于操作系统之外的开机程序,并不像LILO是依靠Linux才能进行设定与维护,也提供了类似Bash的命令列模式,让使用者更方便地设定GRUB。

linux系统启动到grub后无法启动故障处理总结

故障描述 新华保险一台web服务器由于本地硬盘损坏导致文件系统只读,出现故障后客户把服务器重启,启动到grub交互式菜单无法引导,后续更换坏盘同步后还是无法引导。 故障处理过程 出现系统启动到grub无法引导,一般可能由于grub.conf文件被破坏、/boot目录被删除或者/boot文件系统损坏导致。 1.使用系统安装光盘进入救援模式 2.chroot /mnt/sysimage无法切换,df –h没有其他分区被mount,初步怀疑/文件系统损坏导致。 3.fdisk –l查看系统盘,发现该主机本地包括有三个分区,其中/dev/cciss/c0d0p3为swap分区,其他 分区需要确认是否使用lvm。 /dev/cciss/c0d0p1 linux /dev/cciss/c0d0p2 linux /dev/cciss/c0d0p3 linux swap /solaris 4.通过pvs和vgs判断是否使用lvm,pvs没有输出,vgs 报no volume groups found 说明该主机没有 使用lvm。 5.下面需要确认c0d0p1和c0d0p2挂载点信息,mkdir /mnt/root;分别mount /dev/cciss/c0d0p1和 /dev/cciss/c0d0p2到/mnt/root下 ●/dev/cciss/c0d0p1挂载时提示指定文件系统类型,该文件系统出现损坏需要修复 ●/dev/cciss/c0d0p2可以挂载,进一步检查挂载后信息,发现该文件系统为应用数据不包括/ 或/boot数据。 根据上面mount结果基本可以判断,该主机/、/boot 、/var/、/usr/ 、/tmp、/opt/ 、/home等系统文件均在/dev/cciss/c0d0p1分区上,由于/dev/cciss/c0d0p1文件系统损坏导致/boot 无法读取从而系统只能启动到grub菜单。 6.文件系统修复 ●通过dumpe2fs /dev/cciss/c0d0p1检查是否能读取出该文件系统的superblock信息,该主机可

ARMLinux启动过程分析(1).

ARM Linux启动过程分析(1) 摘要:嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。本文以S3C2410 ARM处理器为例,详细分析了系统上电后 bootloader的执行 流程及 ARM Linux的启动过程。关键词:ARM Linux bootloader 启动过程Abstract:We can see embedded Linux in kinds of electronic products b ecause of its portability. Linux’s start-up procedure for different processors is also different. This paper provides the analysis ofbootloader execution process and Linux kernel start-up procedure - taking the S3C2410 ARM processor as example. Keywords: ARM Linux bootloader start-up procedure 1. 引言 Linux 最初是由瑞典赫尔辛基大学的学生 Linus Torvalds在1991 年开发出来的,之后在 GNU的支持下,Linux 获得了巨大的发展。虽然 Linux 在桌面 PC 机上的普及程度远不及微软的Windows 操作系统,但它的发展速度之快、用户数量的日益增多,也是微软所不能轻视的。而近些年来 Linux 在嵌入式领域的迅猛发展,更是给 Linux 注入了新的活力。一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(bootloader), Linux 内核,文件系统,应用程序。其中bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用 Linux 内核。Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。根文件系统是 Linux 系统的核心组成部分,它可以做为Linux 系统中文件和数据的存储区域,通常它还包括系统配置文件和运行应用软件所需要的库。应用程序可以说是嵌入式系统的“灵魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持,任何硬件上设计精良的嵌入式系统都没有实用意义。从以上分析我们可以看出 bootloader 和 Linux 内核在嵌入式系统中的关系和作用。Bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本的功能就是为了启动 Linux 内核。在嵌入式系统开发的过程中,很大一部分精力都是花在bootloader 和 Linux 内核的开发或移植上。如果能清楚的了解 bootloader 执行流程和 Linux的启动过程,将有助于明确开发过程中所需的工作,从而加速嵌入式系统的开发过程。而这正是本文的所要研究的内容。 2. Bootloader 2.1 Bootloader的概念和作用Bootloader是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序,其作用类似于 PC 机上的 BIOS。在完成对系统的初始化任务之后,它会将非易失性存储器(通常是 Flash或 DOC 等)中的Linux 内核拷贝到 RAM 中去,然后跳转到内核的第一条指令处继续执行,从而启动 Linux 内核。由此可见,bootloader 和 Linux 内核有着密不可分的联系,要想清楚的了解 Linux 内核的启动过程,我们必须先得认识 bootloader的执行过程,这样才能对嵌 入式系统的整个启过程有清晰的掌握。 2.2 Bootloader的执行过程不同的处 理器上电或复位后执行的第一条指令地址并不相同,对于 ARM 处理器来说,该地址为 0x00000000。对于一般的嵌入式系统,通常把 Flash 等非易失性存储器映射到这个地址处,而 bootloader就位于该存储器的最前端,所以系统上 电或复位后执行的第一段程序便是 bootloader。而因为存储 bootloader的存储器不同,bootloader的执行过程也并不相同,下面将具体分析。嵌入式系

如何构建嵌入式LINUX的NFS

如何构建嵌入式LINUX的NFS 准备工作:一台装有REDHAT9.0的PC机,一套LJD2410-I开发板,PC机上装有LJD2410的软件包,假如我们通过NFS要加载的文件系统为/LJD2410/root_dir/root_china,Ifconfig eth0 192.168.1.100 //设置PC机linux的IP:192.168.1.100,Ifconfig eth0 192.168.1.10 //开发板IP:192.168.1.10 我们需要重新配置编译内核,开启开发板NFS文件系统功能,具体步骤如下:1、修改kernel/arch/arm/def-configs/smdk2410配置文件把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0"这一行改为CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.1.100:/LJD2410/root_dir/root_china noinitrd init=linuxrc console=ttys0 ip=192.168.1.10"运行make menuconfig进入配置菜单,装载配置文件SMDK2410 选择Load an Alternate Configuration File输入配置文件的路径和文件名添加内核对NFS的支持:选中networking opTIons-》IP:kernel level auloconfiguralion项选中file systems-》network file systems-》下的root file system on nfs和nfs file system support 重新编译内核下载bootloader和kernel到开发板上,至此,开发板设置已经完成。PC 机设置:我们必须开启PC机的NFS服务,具体设置如下:1、在LINUX命令符下运行setup,在system services里面选中nfs服务,然后保存退出。2、设置PC机上的共享目录执行vi /etc/exports,在里面添加一行:/LJD2410/root_dir/root_china (rw),然后保存退出,/和rw要有空格(/LJD2410/root_dir/root_china为共享目录,rw为读写权限)。3、执行/etc/rc.d/init.d/nfs restart重启nfs服务。4、为了不必每次开机都要启动nfs服务,我们把/etc/rc.d/init.d/nfs restart 添加到/etc/rc.d/rc.local中,以后PC启动的时候就会执行此文件开启nfs服务。5、测试NFS服务:设置完成后可以在本机上进行测试,如果本机IP为192.168.1.100,则可以用mount 192.168.1.100:/LJD2410/root_dir/root_china /mnt,如果mount成功,则在/mnt的目录就可以看到root_china下面的东西了。6、修改root_china/usr/etc/rc.local文件,设置开发板IP地址为192.168.1.10 至此,开发板和PC

相关文档
最新文档