系统无法正常启动的解决之道

先来看下配置文件的格式:

[[email protected] ~]# uname -r
2.6.32-642.el6.x86_64
[[email protected] ~]# cat /boot/grub/grub.conf 
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0  
timeout=5  
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=a60b5a4a-0be1-44b6-bce3-363d117f52b7 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img

grub最重要的是识别磁盘信息:(hd0,0)

1,硬盘代号以小括号()括起来

2,硬盘以hd表示,后面会跟一组数字,数字之间以逗号隔开

3,是以搜到的顺序来作为磁盘的编号,而非根据磁盘的排线编号(多硬盘情况,搜寻的次序是根据bios中设置的启动顺序,而非插槽编号)

4,第一个搜寻到的磁盘编号为0,第二个为1,以此类推

5,每快磁盘上的第一个分区编号为0,第二个分区为1,以此类推

因此,(hd0,0)表示第一块磁盘上的第一分区

default=0    默认的启动条目,假如同时装有多个操作系统,0表示定义的第一个title系统,1表示           定义的第二个title系统,以此类推

timeout=5    表示可供选择的等待时间,如果超过5秒钟,则使用默认的启动条目default定义的

splashimage=(hd0,0)/grub/splash.xpm.gz    定义启动时的背景图片信息

hiddenmenu    启动时是否要宣示菜单,默认情况下是不显示菜单信息,如果想要显示菜单,可将该配置信息注释即可(行首加#);所谓显示菜单就是下面的信息:

title   定义各个操作系统的名称

root  表示内核文件存放的位置,这里所指的是分区位置,而非 / 目录

kernel  内核的名称以及一些启动时的核心参数。由于启动过程中需要挂载根目录,因此就需要指定根       目录所在的分区。rhgb表示彩色显示,quiet表示静默模式加载内核

initrd  虚拟文件系统

grub.conf文件的配置方法:

default:  设定默认启动的内核或操作系统

timeout:  超时时长;单位是秒

splashimage:grub  菜单的背景图片(可选)

图片:xpm格式,压缩为zip,14bits颜色,640X480

需安装gimp图片编辑工具

hiddenmenu: 隐藏选择菜单(可选)

title  定义一个操作系统或内核

root: 指明引导当前操作系统或内核文件所在分区

kernel: 内核文件路径、根文件系统所在设备,以及传递给内核的参数

initrd: 指明用于辅助内核完成系统启动的ramdisk文件路径再次在内存缓存

实验:

一,设置密码保护编辑功能(在title前面

在grub.conf配置文件里的title之上添加password --md5 “加密后的密码”即可

生成密码的方式:在vim末行模式下,输入该命令,当光标自动跳到行首时,输入密码后按回车,再输入一次密码后按回车,即生成密码

以后每次开机想要进入菜单进行编辑时,需要输入密码:

二,设置密码保护内核(在title之内

在grub.conf配置文件里的title之内添加password --md5 “加密后的密码”即可

生成密码的方式:在vim末行模式下,输入该命令,当光标自动跳到行首时,输入密码后按回车,再输入一次密码后按回车,即生成密码

以后每次开机进入系统时,需要输入密码:

三,损坏grub.conf文件后的恢复

四,在分区情况下,删除并恢复 /boot 和 /etc/fstab(友情提示:先做快照备份)

1,先查看下本机的分区情况和相关配置文件/etc/fstab, /boot/grub/grub.conf

2,删除 /boot 和 /etc/fstab,并重启系统

3,由于删除了/boot 和 /etc/fstab,系统找不到启动分区和kernel,就要进入救援模式,提示系统没

有分区,故要先创建分区

4,创建/boot 和 /etc/fstab

5,创建grub的配置文件

6,重启系统,又回到熟悉的界面

五,在逻辑卷情况下,删除并恢复 /boot 和 /etc/fstab(友情提示:先做快照备份)

1,先查看下本机的分区情况和相关配置文件/etc/fstab, /boot/grub/grub.conf

2,删除 /boot 和 /etc/fstab,并重启系统

3,由于删除了/boot 和 /etc/fstab,系统找不到启动分区和kernel,就要进入救援模式,提示系统没

有分区,故要先创建分区

4,创建/boot 和 /etc/fstab

5,创建grub的配置文件

6,重启系统,又回到熟悉的界面

六,在U盘上自制linux

1、给U盘分区并创建文件系统

# fdisk/dev/sdb

/dev/sdb1对应 /boot /dev/sdb2对应 /

# mkfs.ext4 /dev/sdb1

# mkfs.ext4 /dev/sdb2

2、挂载U盘的 /boot和 /

# mkdir /mnt/boot

# mkdir /mnt/sysroot

# mount /sdb1  /mnt/boot

# mount /sdb2  /mnt/sysroot

3、安装grub至U盘

# grub-install --root-directory=/mnt /dev/sdb

4、复制内核和initrd文件至U盘

# cp /boot/vmlinuz-Version  /mnt/boot/vmlinuz

# cp /boot/initramfs-Version.img  /mnt/boot/iniyramfs.img

5、创建目标文件的根系统文件至U盘

# mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,src,mnt,media,home,root}

6、移植bash等至U盘的根文件系统

# bash copy.sh

脚本内容如下:

#!/bin/bash

ch_root="/mnt/sysroot/"

[ ! -d $ch_root ] && mkdir $ch_root

bincopy() {

if which $1 &>/dev/null;then

local cmd_path=`which --skip-alias $1`

local bin_dir=`dirname $cmd_path`

[ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}

[ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}

return 0

else

echo "Command not found"

return

fi

}

libcopy() {

local lib_list=$(ldd `which --skip-alias $1` | grep -Eo ‘/[^[:space:]]+‘)

for loop in $lib_list;do

local lib_dir=`dirname $loop`

[ -d ${ch_root}${lib_dir} ] || mkdir -p ${ch_root}${lib_dir}

[ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}

done

}

read -p "Please input a command:" command

while [ "$command" != "quit" ];do

if bincopy $command;then

libcopy $command

fi

read -p "Please input a command or quit:" command

done

7、为U盘创建文件系统的配置文件

# vim /mnt/sysroot/etc/fstab

/dev/sda1 /boot ext4 defaults 1 1

/dev/sda2  /    ext4 defaults 1 2

8、为U盘的grub提供配置文件

# vim /mnt/boot/grub/grub.conf

default=0

timeout=5

title

root(hd0,0)

kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/bin/bash

initrd /initramfs.img

时间: 2024-10-18 04:40:39

系统无法正常启动的解决之道的相关文章

CentOS7.4 系统下 Tomcat 启动慢解决方法

CentOS7.4 系统下 Tomcat 启动慢解决的方法 首先查看日志信息,查看因为什么而启动慢 在CentOS7启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的.Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥.为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥. 22-Apr-2017 19:33:07.623 INFO [localhost-startS

u盘安装linux,将grub安装到了u盘,导致没U盘系统无法引导启动的解决方法

今天用U盘装linux时候不小心将grub安装到了U盘上,导致每次启动系统都得插U盘,下面是解决办法,拷贝时忘了记下转载出处,实在不好意思.————————————————————————————————————————————————————————————————装redhat linux的时候用的是u盘安装,不小心把grub装在了u盘上,然后每次都要从u盘启动,当然不能容忍这样子,以下就是修复grub的过程: u盘引导进入系统后,首先查看系统安装位置,也就是执行df -k 查看系统盘/bo

win8系统 host文件无法修改解决之道

host文件,路径为:C:\windows\system32\drivers\etc\hosts 方法/步骤: 方法1:用notepad++打开host文件,修改和保存 方法2:(1)首先用管理管权限打开DOS程序.win8下同时按住winkey+x键,然后点中菜单中的“命令提示符(管理员)”,打开DOS程序. (2)在打开的DOS窗口中敲入“notepad”命令回车即可以管理员权限打开记事本程序,此时打开的记事本就是以管理员身份打开的.即原来host文件当中的内容复制到打开的记事本中来进行修改

好系统U盘启动解决win7系统显示windows未能启动

u盘安装win7系统后,发现开机启动出现windows未能启动画面的情况,那么遇到这种windows无法正常启动情况要怎么办呢?此文好系统U盘启动就为大家分享解决win7系统显示windows未能启动的方法. 很多情况下,当您的电脑安装win7系统后,发现电脑开机的时候并未出现启动画面,在计算机的操作.运行中,难免遇到应用程序无法安装或者Windows无法正常启动运行的问题,这对我们使用计算机带来了很大的不便.小编不得不说您先不要着急,遇事这种麻烦要先想到该如何解决问题,那遇到这样的问题要如何解

重装系统失败后怎么用好系统U盘启动解决?

很多朋友在第一次重装电脑系统时都会出现这样或那样的错误,导致重装系统后进不去系统,非常的被动.那么当我们遇到这种情况该怎么办呢?其实我们可以使用好系统U盘启动来解决重装系统后进不去的问题.好系统U盘启动解决重装系统后进不去的方法1.首先你需要准备一个U盘(如果安装Win10系统,内存最好是8G以上)和另一台电脑,在网上下载好系统U盘启动,然后进行系统U盘启动盘的制作. 2.制作完成后,将要安装的电脑系统镜像文件拷贝到U盘内.各版本Windows系统镜像文件下载地址:https://www.vke

解决Tomcat6解压版在64位windows系统上无法启动服务的问题

解决Tomcat6解压版在64位windows系统上无法启动服务的问题 由于客户环境为64位windows系统,开发环境一直用32位.tomcat使用6.0.20非安装版.部署时发现在64位系统下,注册服务后无法正常启动服务(直接运行startup.bat可以成功启动tomcat),日志中报错信息为: 引用 [174  javajni.c] [error] %1 不是有效的 Win32 应用程序. [994  prunsrv.c] [error] Failed creating java D:\

realarm Android系统编译后内核无法启动的解决方法

由于之前版本使用的内核并非uImage格式,而在编译时使用的是非uImage格式编译,所以照成无法启动. 解决方法是,在编译内核时使用make uImage方式编译. 修改根目录下的build_realv210.sh文件,如下图所示 另外注意上图中CPU_JOB_NUM这个参数,要根据自己的电脑配置来选择,该参数在该文件的起始处设置,可以设置成电脑CPU核心数的2倍,例如:如果核心数为2,那么设置成4即可. 完整脚本下载地址:http://download.csdn.net/detail/u01

好系统U盘启动分享win7电脑无法关机解决方法

最近有位win7系统用户在电脑关机的时候,碰到了电脑无法关机的情况,很多时候需要强制关机,才能够把电脑关机,用户不知道怎么办,为此非常苦恼,那么win7电脑无法关机怎么办呢?今天好系统U盘启动为大家分享win7电脑无法关机解决方法. 电脑无法关机解决方法: 1.在Win7系统桌面左下角点击开始菜单,弹出菜单栏,在里面找到"运行"选项,并单击它.如图所示: 运行 2.在弹出的运行对话框中输入"gpedit.msc",然后单击"确定".如图所示: g

鹰眼跟踪、限流降级,EDAS的微服务解决之道

本文主要从服务化的起源开始讲起,围绕EDAS介绍这些年来,随着阿里庞大的电商技术平台流量和并发不断攀升过程中,中间件的微服务技术面临的一系列挑战及解决方法.同时,也会向读者介绍历次双十一背后,EDAS服务化技术的演进历程. 服务化的起源 微服务的解决之道 海量微服务的挑战 关于作者 以下为精彩内容整理: 服务化的起源 阿里巴巴前期技术现状 当时阿里巴巴技术团队规模有500人左右,整个技术网站使用单一War应用,基于传统应用开发架构,业务每年翻倍增长. 我们面临着非常多的问题: 上百人维护一个核心