搜档网
当前位置:搜档网 › 修复linux引导

修复linux引导

修复linux引导

修复linux 引导

13年1月10日

本人的电脑安装了三个系统,c盘xp,d盘,win7,最后是ubuntu12.10.

惨呀,win7,由于本人更新驱动时。操作失误导致系统蓝屏,悲剧呀,用了N种方法去修护,结果都失败,只好重新安装win7。

幸亏多安装了xp系统,双系统作用蛮大的,可以互相维护和使用,省心省力值得推荐。

下面简单介绍安装win7系统

制作U盘启动系统

准备一个8G U盘,推荐使用软碟通工具将win7(.Iso)镜像文件写入U盘,大概需要十几分钟时间制作好之后重启系统。详细操作请使用百度,谷歌查询。

进入bios,boot引导设置,选择用U盘为第一启动,按10重启电脑。详细设置请使用百度搜索。

接下来就安装win7,我将它安装在D盘,win7安装详细方法找度娘或者谷歌大神。

win7安装完后,重新电脑,发现ubuntu12.10引导被操软给踢走了,本人是菜鸟刚进入linux世界,就受到这种不公平待遇,气死我啦。

在网上找了N多修复方法,有的要么太旧的要么太深奥,怎么办呢?不怕,只要有什么不会的就找那两个巨人就行了,百度,谷歌。发现一个修复工具特强悍easybcd,有英语版和汉化版。不懂怎么使用的话百度知道就有教程,

我是使用WN7系统,安装easybcd,参考几个大神的修复方法,设置好,重新系统,开机进入引导界面真的有ubuntu12.10,选择进入,悲剧,引导失败,无法进入系统。试过好几种都不行,换个系统使用xp试一试。想了想,如果重新安装xp系统,那么win7引导就没了,别说linux了,那么顺序就先使用pe修复win7引导,接着用win7下easybcd修复linux。能成功修复,原因是linux引导还被win7保留把?现在win7重新安装了,linux就无法辨认win7下linux mbr,唯一的就是重新安装linux修复。哈哈,别忘了还有xp系统呢,在xp下使用easybcd成功修好linux引导。总之linux引导必须在操软系统下面。这个原因,我查了一下,都是那操软给黑的。

本人是菜鸟分析可能鸟到家了,供大家一起交流,我不是很懂,请各位大神出来指点一下。blueskyclp

修复更新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.sodocs.net/doc/7418043099.html,/zyf837368104/article/details/7627065上面的链接的文章指明原因所在,但是所提供的方法却不对。之后我又在某论坛(https://www.sodocs.net/doc/7418043099.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系统修复

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

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

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.sodocs.net/doc/7418043099.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系统故障及解决方法

浅谈linux系统下常见的故障与处理方法 与windows系统一样,linux操作系统也会存在很多问题和故障,很多linux新手都害怕故障,面对出现的问题显得无可奈何,更有甚者,由此放弃了linux,其实,我们不应该惧怕问题,学习就是一个发现问题与解决问题的过程,只要掌握了解决问题的基本思路,一切故障都会迎刃而解,当然前提是我们已经具备了解决问题的思路和扎实的知识功底。 一、处理linux系统故障的思路 作为一名合格的linux系统管理员,一定要有一套清晰、明确的解决故障思路,当问题出现时,才能迅速定位、解决问题,这里给出一个处理问题的一般思路: 重视报错提示信息:每个错误的出现,都是给出错误提示信息,一般情况下这个提示基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。 查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。 分析、定位问题:这个过程是比较复杂的,根据报错信息,结合日志文件,同时还要考虑其它相关情况,最终找到引起问题的原因。 解决问题:找到了问题出现的原因,解决问题就是很简单的事情了。 从这个流程可以看出,解决问题的过程就是分析、查找问题的过程,一旦确定问题产生的原因,故障也就随之解决了。 二、忘记linux root密码 这个问题出现的几率是很高的,不过,在linux下解决这个问题也很简单,只需重启linux系统,然后引导进入linux的单用户模式(init 1),由于单用户模式是不需要输入登录密码的,因此,可以直接登录系统,修改root密码即可解决问题。 下面是详细的处理方法,这里我们以Redhat linux为基准,操作步骤如下: (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下的安全模式类似,在单用户模式下,只是启动最基本的系统,网络以及应用服务均不启动。单用户模式启动完毕,系统会自动进入到命令行状态下,

linux系统引导过程

linux系统引导过程简介 首先,主板的BIOS会读取硬盘的主引导记录(MBR),MBR中存放的是一段很小的程序,他的功能是从硬盘读取操作系统核心文件并运行,因为这个小程序太小了,因此通常这个小程序不具备直接引导系统内核的能力,他先去引导另一个稍微大一点的小程序,再由这个大一点的小程序去引导系统内核.在linux系统中这样的小程序有LILO和GRUB.在这个项目中,我决定用LILO来做系统引导程序.在软盘上启动linux系统的过程和在硬盘上启动的过程相似. Linux系统内核被引导程序装入内核并运行后,linux内核会检测系统中的各种硬件.并做好各种硬件的初始化工作,使他们在系统正式运行后能正常工作.之后内核做的最后一个工作是运行 /sbin下的init程序,init是英文单词initialization(初始化)的简称,init程序的工作是读取/etc/inittab 文件中描述的指令,对系统的各种软硬件环境做最初化设定.最后运行mingetty等待用户输入用户名登录系统.所有的工作就这么简单,虽然linux启动的时候有很多内容,看上去十分高深,但是都不过是对这个过程的扩充.明白了这个道理,你可以写一些脚本程序让他在系统启动的特定时间运行完成任务.事实上系统内核并不关心/sbin下的init是不是真的init,只要是放在/sbin下名叫init 的可执行程序他都可以执行. Red Hat Enterprise Linux在电脑的启动阶段,一共经历以下两个阶段: 1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。 2.执行程序init.(系统初始化).装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,包括重要系统精灵程序和其它指定在启动时装入的软件。 开机---BIOS自检---载入启动程序---加载内核---启动init服务---加载/etc/inittab---Run level---rc.sysinit---rc--- mingetty---rc.local 一.BIOS自检 当电脑开机的时候,电脑会进入BIOS,在PC机中引导LINUX是从BIOS中的地址0xFFFF0处开始的.BIOS的第一个步骤是加电自检,即所谓的POST(Power On Self Test),BIOS的第二个步骤是进行本地设备的枚举和初始化,侦测电脑周边配套设备是否工作正常,如cpu的类型,速度,缓存等;主板类型,内存的速度,容量,硬盘的大小,类型和工作模式,风扇速度等,主要是为了检查这些设备在开机的时候是否能通过检测,说明电脑可以正常的工作.BIOS由两部分组成:POST代码和运行时的服务.当POST完成之后,它被从内存中清理了出来,但是,BOIS 运行时服务依然保留在内存中,目标操作系统可以使用这些服务 二.载入启动程序

嵌入式linux系统地启动过程

一、分析嵌入式系统的启动过程 嵌入式系统的启动过程: 上电------->u-boot------->加载Linux内核------->挂载rootfs ---->执行应用程序 二、分析u-boot 1.什么是u-boot(是一个通用的bootloader) U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。 Universal ----------->通用的 Boot ----------------->启动,引导 Loader ----------------->加载 通用------->支持多种架构的CPU,除了支持ARM系列的处理器外,还能支持MIPS、x86、Power PC、NIOS等诸多常用系列的处理器 ------->支持多种厂家的开发板,如cortex-A8,cortex-A9,cortex-A53等不同厂 家的开发板 ------->支持多种嵌入式操作系统,U-Boot不仅仅支持嵌入式Linux系统的引导,它还支持Net BSD, Vx Works, QNX, RTEMS, ARTOS, Lynx OS, android 嵌入式操作系统。 Boot -------->完成硬件的初始化,启动硬件平台。 Loader ------->当初始化硬件结束后,加载操作系统。 2.u-boot的作用 大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。 (1)Stage1:CPU(S5P6818-->Cortex-A53)的初始化,使用汇编语言编写。 如:初始化Cache、MMU、clock、中断、看门狗、DDR3、eMMC、... (2)Stage2:板级初始化,使用C语言编写。 如:uart、网卡、usb、LCD、.... (3)提供了一些工具,如进入uboot的命令行模式,使用u-boot命令 (4)加载操作系统 3.U-boot的工作模式 U-Boot的工作模式有启动加载模式和下载模式。

相关主题