导航:首页 > 操作系统 > linux系统引导修复

linux系统引导修复

发布时间:2023-04-13 00:57:39

‘壹’ 怎样修复linux系统的引导文件

你是指引导程序还是内核映像?
引导程序通常都是引导配置文件错误导致无法困正岩引清枝导,编辑修正错误就可以了,不然就卸载/重装引导程序包,写入mbr,重新生成配置文件。
如果是内核文件错误,则可以重建汪御内核文件和映像,不同发行版都带有相应工具,具体查阅下放行版网站/随机文档说明。

‘贰’ 如何在Linux下修复开机硬盘引导

开机硬盘引导
有很多不同的引导器的,也可以安装第三方引导器
winxp是ntldr引导的,
win7是bootmgr引导的,
linux多是grub2引导的,
还有grub4dos,syslinux,……
linux能够修复grub2的引导,
windows的引导必须使用windows修复盘,或者dos,winpe的修复工具
grub可以直接加载ntldr,bootmgr,引导winxp,win7

‘叁’ 如何修复Linux引导

多种方式安装Linux系统
1. 制作安装启动盘
方法一、在DOS/Windows下制做
G:\dosutils> rawrite
Enter dis image source file name:bootdisk.img
Enter target diskette drive:a
Please insert a formatted diskette into drive A:and press –ENTER--:[Enter]
注:光盘\images\有以下几个IMG文件
l bootdisk.img 安装引导盘映像文件
l drvnet.img 网卡驱动盘
l drvblock.img 块设备驱动盘
l pcmciadd.img PCMCIA设备驱动盘
方法二、在Linux下制做启动盘
#dd if=boot.img of=/dev/fd0 bs=1440
2. 光盘安装Linux系统
(1)使用1#光盘启动计算机
(2)直接按回车键/linux text选择安装界面
(3)开始安装向导
3. 硬盘安装Linux系统
(1)将安装光盘的ISO文件复制到硬盘的某个分区中
(2)利用1#光盘/安装启动盘启动计算机
(3)输入linux askmethod选择安装介质
(4)开始安装向导
4. FTP/HTTP安装Linux系统
(1)准备安装文件,制作HTTP/FTP服务器
(2)利用1#光盘/安装启动盘启动计算机
(3)输入linux askmethod选择安装介质
(4)开始安装向导
二.启动linux系统
1.Linux启动过程分析
(1)BIOS自检
l 硬件检测及初始化
l 引导启动设备
(2)引导启动设备
l 软盘(0磁道第一个扇区)
l 光盘(最外围存储轨道)
l 硬盘(MBR)
l USB存储设备
(3)调用Linux引导程序至内存中
l Linux的引导程序可以使用GRUB/LILO等引导软件
l GRUB/LILO可以安装在MBR/引导分区的引导扇区中
(4)运行Linux内核
l 内核放在/boot目录中,Linux系统可以同时支持多版本内核
l 解压缩内核
l 检测硬件
l 加载root文件系统
(5)执行init进程
l 启动新进程或关闭进程
l 选择启动模式
l 建立虚拟终端
(6)用户登录
l 输入用户名及口令
l 加载用户配置文件
l 加载shell程序
2.引导盘的创建
方法一:安装过程中创建
方法二:mkbootdisk
#mkbootdisk --device /dev/fd0 2.4.20-8
方法三:使用dd命令
# dd if=/boot/vmlinuz of=/dev/fd0
3.GRUB
(1)安装GRUB
l 安装软件包
#rpm –ivh grub-0.934.i386.rpm
l 使用安装命令安装GRUB到MBR
#grub
grub>root (hdx,y)
grub>setup (hdx[,y])
(2)GRUB的配置
#vi /boot/grub/grub.conf
grub.conf中常用的配置命令有:
default=菜单项序号/saved
设置启动菜单的默认启动项
hiddenmenu
隐藏菜单界面
splashimage =图像文件全路径名
指定某文件作为启动菜单的背景图像
timeout=延迟秒数
设置启动菜单的启延时
title 菜单项名称
开始一个菜单项的配置,设置菜单项的名称
root (hdx,y)
设置GRUB的根设备为linux内核所在的分区
kernel 内核文件名称
指定内核文件的名称及加载内核所需的参数
initrd initrd文件名
指定镜像文件的位置
map (hdx[,y]) (hdx[,y])
建立虚拟磁盘
rootnoverify (hdx,y)
指定windows启动引导器的位置
makeactive
标识指定分区为活动分区
chainloader +n/文件名称
调用指定windows启动文件
password 口令/--md5 口令密文
设置GRUB启动菜单和菜单项口令
lock
利用password设置的全局口令锁定菜单项
savedefault
保存当前启动菜单项为默认启动
文件实例:
# grub-md5-crypt(产生口令的MD5密文)
# vi /etc/grub.conf
default=0
timeout=50
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 #!dfdasdf34123!#@$!#@
title RedHat Linux 9.0
root (hd0,2)
kernel /Vmlinuz-2.4.20-8 ro root=/LABEL=/
initrd /initrd-2.4.20-8.img
password linux
tile windows 2000
rootnoverify (hd0,0)
chainloader +1
lock
(3)GRUB的FAQ
l 编辑模式的使用
用于临时修改菜单的选项,在菜单界面中按E键进入

l 命令行模式的使用
利用命令行命令设置GRUB,在菜单界面中按C键进入

grub命令行中常用的命令有:
grub>root (hdx,y) //设置根设备所对应的分区
grub>kernel 内核文件 //设置内核文件的名称
grub>initrd 镜像文件名 //设置镜像文件名
grub>boot //启动指定操作系统
grub>rootnoveify (hdx,y) //设置根设备所对应的分区,但不检查加载点
grub>chainloader 文件名 //加载指定的文件
grub>help //获取帮助
grub>reboot //重启系统
grub>md5-crypt //生成口令的MD5密文
grub>setup (hdx[,y]) //安装GURB到MBR/指定分区的引导扇区中
grub>hide 分区 //隐藏分区
grub>cat 文件名 //显示文件内容
grub>find 文件名 //查找文件
l 如果MBR中的GRUB引导程序被其它程序覆盖,应该如该恢复
放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式,加载硬盘上的LINUX系统到/mnt/sysimage)
#grub
grub>root (hdx,y)
grub>root (hdx)
l 恢复GRUB的配置文件
由于grub.conf设置的问题,可以采用以下方法进行恢复:
放入第一张安装启动盘,开始启动计算机:boot:linux rescue(启动linux的修复模式)
#vi /mnt/sysimage/boot/grub/grub.conf
l 如何利用GRUB进入单用户模式,找回丢失的root用户口令
在GRUB菜单界面中按e编辑linux菜单项,给内核添加参数single
l 如何卸载GRUB
#rpm -e grub
C:\>fisk/mbr
l 如何制作GRUB启动盘
#grub-install /dev/fd0
3.init 进程
(1)init进程的作用
init进程是系统启动第一个进程,它负责加载其它进程、管理系统的其它进程。
(2)init的配置-----inittab文件
/etc/inittab文件用于设置init进程在执行时加载哪些程序,inittab文件由若干个记录构成,每条记录格式如下:
ID:RUNLEVEL:ACTION:COMMAND
以下为默认inittab文件内容:
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 “power failure;power shutting down”
pr:12345:powerokwait:/sbin/shutdown –c “power restored;shutdown cancelled”
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
说明:
(3) 修改/etc/inittab文件,可以设置默认启动模式、各运行级别所加载的程序、CTRLALTDEL的动作、开设虚拟用户终端
(4)/etc/rc.d 的目录内容
1)/etc/rc.d/init.d目录
l 保存所有运行等级需要的所有脚本
l 启动、停止、重启某些服务
2)/etc/rc.d/rc
l 系统改变运行等级,通过此脚本检查/etc/rc.d/rcX.d目录和文件可存在,以及是否正在运行等,以及运行/etc/rc.d/rcX.d中所有S开头的脚本
3)/etc/rc.d/rcX.d目录
l 存放每一运行等级默认启动项,该目录中的文件链接到:/etc/rc.d/init.d
l 文件名格式为K{Two-digit number} {script name}/S{Two-digit number} {script name},K:以stop参数运行,S:以start参数运行;Two:数字代表执行顺序
4)/etc/rc.d/rc.local
l 该脚本在2,3,5运行等级结束时执行
5)/etc/rc.d/rc.sysinit
l 系统初始脚本,用于设置系统的时钟、加载键盘、加载系统字体、加载其他文件系统、激活交换分区、生成日志文件
三.linux系统修复模式
1. 系统修复模式的简介
使用安装光盘启动修复模式,用于检测和加载硬盘上已安装的linux系统到/mnt/sysimage目录中。该模式主要用于修复损坏的系统,当系统出现故障时可使用修复模式.
2.启动修复模式
使用1#安装启动系统
在boot:提示符下输入linux rescue启动修复模式,按照启动向导启动系统
linux修复模式的应用
修复系统
找加丢失的用户口令
修复系统配置

‘肆’ linux开机grub>命令修复方法

出现grub rescue模式一般是硬盘分区出现变动、导致旧的grub找不到启动文件而出现的。

出现错误具体原因未知,但开机不能引导肯定是grub配置文件出错,/boot/grub2/grub.cfg

解决方法:

2,grub> 模式下:输入:ls 查看所有磁盘分区:hd。x,x......用:ls hd(x,x)/grub 找grub所在的分区,有正确执行结果的便是找到linux所在分区后执行setprefix=hdx,x/grubsetroot=hx,x、insmod normal再使用normal命令进入系统后,再修复grub 配置。or:查找boot分区:find /boot/grub/menu.lst 或者 find /boot/grub2/grub.cfg

输入以下命令:cat hd0,7/boot/grub/grub.conf 关于内核信息的,看一下就明白了。按照下面命令依次输入指定/boot分区使用命令:grub>root hd0,0grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回车grub>initrd /boot/initrd-2.6.18-53.el5.img 回车boot 回车启动

‘伍’ U盘修复 Kali Linux grub引导

本文已重新排版并上传到个人博客 U盘修复 Kali Linux grub引导

总是爱折腾多系统,出了问题是难免的。

U盘启动到live模式,打开终端。

fdisk -l

查看输出结果,晌答然后根据文件类型和分区大小来判定 Linux 系统安装在哪块硬盘和安装的分区。

挂载安装分激空区 /dev/sda3,sda3为Kali Linux所在分区

mount /dev/sda3 /mnt

挂载其他所需的目录(使用 –bind)

mount --bind /dev /mnt/dev

mount --bind /proc /mnt/proc

mount --bind /sys /mnt/sys

Chroot 到硬盘上的 Linux 系统

chroot /mnt

安装&更新 Grub

grub-install /dev/sda

grub-mkconfig -o /boot/grub/grub.cfg

退出 chroot 环境

exit

卸载分明谨瞎区

umount /mnt/dev

umount /mnt/proc

umount /mnt/sys

umount /mnt

reboot重启,引导修复完成

‘陆’ 怎样修复linux无法启动故障

1、在系统启动过程中,会出现图1所示画面,按任意键,进入GRUB菜单选项。

2、按“e”键编辑GRUB引导菜单选项,图2显示为按“e”键后的GRUB屏幕。

GRUB引导菜单选项

通过箭头键下移到kernel行,并按“e”键,得到图3中显示的编辑界面:

kernel行编辑界面

在尾行光标处添加single或者s,按回车键返回前一个屏幕,按“b”键进行引导,则系统自动进入单用户模式,如果要改变root密码,则执行命令:

sh-3.1# passwd root

更改成功后,执行命令exit退出重启即可。

‘柒’ Linux 修复grub开机引导(ubuntu)

问题 : 有时候Linux系统/boot分区损坏时,启动Linux系统时直接进入字符接口的grub引导,并没有进入到系统或者开机显示 error:unknow filesystem提示

解决办法:

Linux开机自动会进入到grub引导接口(如果没进入到grub引导接口可以按C键进入)

第一步:找到系统对应的扇区及/boot/grub目录
注意 :假设是硬盘接口类型sd,hd0对应是sda hd1对应是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2)  查看(hd1,gpt2)扇区信息(盘符、空间等)
ls (hd1,gpt2)/  查看(hd1,gpt2)扇区下的内容(文件、文本等)

如果打印每个扇区目录信息,会出现两种情况:
1、ls (hd1,gpt2)显示Unknow filesystem提示说明这个扇区不是我们要找系统分区
2、ls (hd1,gpt2)显示/boot /proc等系统目录信息说明这个扇区是我们要找的系统分区

如果找到对应扇区的系统分区,可能会遇到两种情况:
1、 A目录下有/boot/grub
2、A目录下有/boot,B目录下有/grub (此时在第二步加载系统内核要使用 set prefix=(hd1,gpt2)/grub 命令)

grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)

第二步:加载系统内核
grub > set root=hd1,2 #此处不需要括号,加括号也可以,hd0和hd1是有区别
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必须使用TAB补全(可能有后缀),注意sda或sdb需要看自己的实际情况
grub > initrd /initrd.img-xxx #TAB补全,多内核情况下版本需统一
grub > boot

提示 :如果在boot之后不幸进入BusyBox,说明参数设置有问题,可以仔细查看出错的日志,再重启系统后重复执行第二步操作(重启系统后上面设置的参数会被清空)。

第三步:修改grub引导
如果成功进入系统,记得要马上信息grub引导,不然重启系统后问题还是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb

第四步:重启系统
重启系统后即可正常进入系统
reboot

‘捌’ 如何修复Linux无法正常启动故障

没有操作系统能够确保100%可靠。终有一天,即使Linux也会无法启动。本文为你提供一些在Linux工作站无法正常启动时所采用的策略。

不管你多么喜爱你的Linux机器,有时候你都必须恢复你的系统。是的,即使一台Linux机器也可能遭受系统崩溃:不管是由于视频配置错误、内核更新出错、或是由于init脚本配置错误,这种情况都是必然的。我看到过大量这种情况——即使在我自己的机器上,大多数是由于X配置出错——这确实令人沮丧。

在我看来,重新安装系统并不是最佳救援计划。有时候,最佳救援计划甚至不需要从救援磁盘启动。本文将为如何避免系统崩溃提供一些提示和诀窍,帮助你建立恢复崩溃的Linux机器所需的工具。

使用正确的运行级别

安装好一个新的Linux系统后,我立即采取措施以确保灾难不会轻易发生。其中一个措施就是编辑系统的运行级别。运行级别告诉系统离采用引导过程还有多远。运行级别分为六个等级:

0级:停止(不设置initdefault)

1级:单用户模式

2级:多用户模式,没有NFS(与3级相同,如果你没有建立网络)

3级:完整的多用户模式

4级:不使用

5级:X11

6级:重新启动(不设置initdefault)

新型的Linux系统几乎总是默认使用运行级5(X11),表示系统在引导完成后,将会在图形登录界面处停止。在某物(或某人)使用X配置前,系统一切正常。

然后你必须找到一个登录方法。你可以按下[Ctrl][Alt][F7]进入一个基于文本的虚拟窗口,但为什么要这么麻烦呢?相反,我总是在/etc/inittab文件中将运行级更改为3级。你更改的代码为:

id:5:initdefault:

它被更改为:

id:3:initdefault:

当X出错时,这是一个非常简单的系统恢复方法。

多内核

另一个明显的磁盘恢复方法是总是安装一个正常运转的内核。我通常在一个通过yum更新的内核上工作。有时候,内核会出现一些错误,使得我的一台或几台机器无法启动。

为避免这种情况,我一直保证在机器上使用至少一个正常运行的内核。要解决这个问题,首先应在/etc/yum.conf文件中添加plugins=1,然后应用这段脚本(由RedHat的Jeremy Katz编写),并将它命名为n-installonly.py,保存在/usr/lib/yum-plugins文件中。你可以通过修改tookeep变量(默认为2)的方法更新系统所使用内核的数量。

知道系统上有一个正常运转的内核,你就可以进行安全升级。如果新内核出错,只需启动旧内核就可以解决新内核上的问题(不管是删除、重新编译还是升级)。

救援模式

如果你在使用Red Hat和LILO引导加载器,你就可以插入产品光盘1,并在引导提示符下输入Linuxrescue进入救援模式。启动机器后,你就会看到bash#提示符。在这个模式下,你可以使用许多工具。

如你所见,有检查硬盘完整性、修复硬盘、检查内核模块、装配设备、以及创建文件系统等的工具。此时是进行救援尝试的最佳时机(如果你使用的是一个Red Hat,或基于Red Hat的系统)。

另一个救援方法是进入单用户模式,这里你的计算机引导进入运行级1。系统装配你的本地文件系统,但不激活网络。你得到一个可用的系统维护外壳。要进入单用户模式,在LILO提示符下输入:

Linuxsingle



Linuxemergency

建立一张救援CD

如果你正在使用LILO引入加载器,可以使用一个叫做mkrescue的强大工具。这个工具一般用于创建引导软盘,但也可用来创建ISO。其用法如下。

如果你使用Mandriva:

mkrescue --iso --initrd /boot/initrd-KERNEL-NUMBER.img --

kernel /boot/vmlinuz-KERNEL-NUMBER

注意:这里的KERNEL-NUMBER指内核的版本号。

如果你不能确定内核的版本,可以用以下命令找到intrd和vmlinuz的号码:

uname –r

运行这个命令后,你就会在运行mkrescue命令的目录中发现一个rescue.iso文件。现在你可以用以下命令建立镜像:

首先,检查建立CD的设备号码:

cdrecord –scanbus

然后用以下命令建立镜像:

cdrecord dev=0,0,0 rescue.iso

注意:这里的dev=0,0,0是用上面的scanbus命令查出的号码。

如果你使用Slackware,使用这些步骤建立一张引导CD:

mkrescue –iso

注意:Slackware自动获知在ISO中放入何种内核。

然后,你可以用建立Mandriva镜像同样的方法建立镜像。

SystemRescueCD

SystemRescueCD是一个保存在可引导光盘上的Linux系统,用于在系统崩溃后修复系统和数据。它还可在计算机上方便地执行管理任务,如建立和编辑硬盘分区。它由许多系统实用工具(parted、partimage、fstools)和基本实用工具(编辑器、midnight commander文件管理器和网络工具)构成。

它使用起来非常简单。只需要从光盘启动你就可以执行一切操作,就像从硬盘启动一样。系统内核支持大多数重要的文件系统(ext2/ext3, reiserfs, reiser4, xfs, jfs, vfat, ntfs, iso9660)和网络(samba和nfs)。

SystemRescueCD可能是市面上最优秀的救援系统。你不仅可以从光盘上使用这种救援方法,还可以将这个救援系统放在U盘上使用。

要在一个U盘上建立一个SystemRescueCD,你需要大于256MB的磁盘空间。从Sourceforge下载iso镜像并把它烧制到光盘上。现在你必须在U盘上创建文件系统。使用dmesg命令找出U盘名称,然后用以下代码擦写U盘:

dd if=/dev/zero of=/dev/sda

这里的/dev/sda是U盘的名称。

现在在U盘上安装主引导记录:

install-mbr /dev/sda



install-mbr --force /dev/sda(如果命令出错)

现在建立分散分区:

parted /dev/sda

(parted) mkpartfs primary fat32 0 100% // use help or help mkpartfs command to see help

(parted) print // check if the write was ok

(parted) quit

现在已经建立好文件系统,然后将用SystemRescueCD镜像烧制的CD中的文件复制到U盘中。保证你复制的文件等级和CD上的相同。

现在,使得U盘可以用sysLinux命令启动:

sysLinux/dev/sda1

这里的/dev/sda1是磁盘的名称。

现在你已经建立了一个你可以整天随身携带的救援U盘。由于你使用Linux,你并不需要经常用到它。

最后总结

Linux是一个非常稳定的环境,但由于该系统中还有许多其它系统,它们可能会出现错误。虽然我们很容易会由于使用Linux而洋洋自得(因为它存在诸多优点),但了解如何拯救一个系统崩溃的机器也不失为一种明智的做法。

当然,不是世界上所有的救援系统都能100%地恢复你的系统,因此你可能希望考虑为你的Linux服务器和桌面系统实施一个灾难恢复计划。

‘玖’ linux系统起不来了,怎么修复

在C盘的根目录下,选择“工具”--“文件夹选项”--“查看”--去掉“隐藏受保护的操作系统文件”选取“显示所有文件和文件夹”,然后你就可以看到boot.ini了

另外,lz看看下面的内容:

修改c盘根目录下的boot.ini文件(系统文件,要调整文件查看选项才可以看到,方法为:我的电脑/选择顶部菜单栏的工具/文件夹选项/查看/隐藏受保护的操作系统文件),在最后面添加一行:c:\grldr = "Click this item to install linux."

修改boot文件夹里面的menu.lst(是字符L,而不是数字1)文件。在最后面添加下面的指令,保存退出,并重新启动系统。
title Click this item to install linux.
root (磁盘号,分区号)----即为vmlinuz和initrd.img所在分区
kernel /vmlinuz
initrd /initrd.img
boot

补充:若无法正确引导,则可以不用修改menu.lst文件,而改用手动设定方式来启动,步骤为:
当选择“Click this item to install linux.”,进入如下界面(如图一)。键入“p”并输入密码(默认为123456),取得特权控制功能,接着键入“c”,进入grub引导模式进行手工操作

‘拾’ 怎么在双系统下修复linux开机引导文件

1、鼠标右击“计算机”选择属性,然后选择点击左侧的“高级系统设置”项;
2、在弹出来的系统亮哗属性界面中,切换到“高级”选项卡下,然后点击启动和扮氏故障恢复下的“设置”按钮;
3、接着在弹出敬缺行来的启动和故障恢复窗口中,将“系统启动”下的默认操作系统下拉按钮选择WIN7系统为默认操作系统即可。

阅读全文

与linux系统引导修复相关的资料

热点内容
考研人如何缓解压力 浏览:818
买电暖壶哪个app便宜 浏览:503
洛克王国忘记服务器了怎么办 浏览:782
为什么cf登录服务器没反应 浏览:695
服务器如何获取文件列表 浏览:672
creo五轴编程光盘 浏览:14
苹果app网络验证在哪里 浏览:14
博科清空命令 浏览:384
简爱英文pdf 浏览:376
cnc编程有前途吗 浏览:586
联想app怎么联网 浏览:722
linuxftp命令登录 浏览:1000
android获取图片缩略图 浏览:646
神户制钢螺杆压缩机 浏览:29
差分演化算法 浏览:567
中山市加密软件 浏览:446
mc反编译源码 浏览:141
企业商城网站源码 浏览:411
shell脚本编程是什么 浏览:762
单片机led闪烁汇编 浏览:203