linux 开机时,提示Kernel panic - notsyncing:Attempted to kill init 就不动了。 不知道怎么回事儿。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 开机时,提示Kernel panic - notsyncing:Attempted to kill init 就不动了。 不知道怎么回事儿。相关的知识,希望对你有一定的参考价值。

是这样。
1.我在我的电脑(实体机)上安装系统,然后备份grub.conf 和menu.lst 然后还原系统,reboot一切正常OK.
2.我在客户的dell的服务器上面按照我在我机子上面的操作完全一样,却出现了:
Kernel panic - notsyncing:Attempted to kill init 然后就不动了,不知道什么原因。
具体有图片。
3.我郁闷半天,回来又在我的测试机上面测试,这时候出现了跟在那里一样的情况。当时很激动,不清楚为什么,但是消除了是对方服务器的问题,应该是自己的问题。我按照提示的将/dev/root porc sys 都备份出来了,然后继续还原系统。还原完成以后我没有将那三个文件放进去,然后就reboot了,当时很后悔我的操作,然而,这次reboot却成功的进入了系统……
4.现在是完全搞晕了,完全不知道什么原因了。
----------求解决办法----------
5.具体操作如下:安装redhat5 然后跟目录下 cp boot/grub/grub.conf / ; cp boot/grub/menu.lst / ; tar xvpzf backup.tgz -C / 【backup.tgz是打压缩好的系统文件包,压缩包是这么生成的,tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys 这个包绝对没有问题,因为本人在测试机子上面测试成功。】 完成后提示因错误延迟云云。然后跟目录下cp grub.conf boot/grub/ yes ;cp menu.lst boot/grub/ yes
6.然后reboot 在测试的时候 就正常启动。进入linux系统。 但是在客户dell服务器上面就提示图片上面的内容,就各位大大帮帮忙。

怕图片看不清楚 我打下来:
Memory for crash kernel (0X0 to 0X0)notwithin permissible range
Red Hat nash version 5.1.19.6 starting
Reading all physical volumes. This may take a while...
Volume group "VolGroup00"not found
Unable to access resume device (/dev/VolGoup00/LogVo101)
mount:could not find filesystem '/dev/root'
setuproot:moving /dev failed:No such file or directory
setuproot:error mounting /proc :No such file or directory
setuproot:error mounting /sys :No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!
凌晨一点 还起来帮我解答。。 这大鼻涕泡留得……
1.
root (0,0)
kernel /boot/vmlinuz ro quiet
initrd /boot/initrd.gz
这在什么时候输入?在终端里面嘛?更改grup.conf ? 我菜鸟一个。学linux不到1个月。。
2.
建立卷组的有这项root=/dev/VolGroup00/LogVol101
没有卷组的是:root (0,0)
grub里启动项不同,而启动不了系统。
改的话,把root=……,改成root (0,0),应该能解决问题。
Q:哪里把root=……,改成root (0,0),是gurb.conf?么。

这个是你没有设定,内核的root
在启动linux时,出现上面这个错误,许多情况下是因为,没有在grub.conf(或者你没有安装grub,而用的是grub4dos的menu.lst文件)文件,没有指定根文件系统.

Do not forget that you have to specify a root partion to the kernel.(Grub 手册)

这里给出一个例子,一看你就明白了。

timeout=10
defalut=0

title Redhat Enterprise Linux 5
kernel (hd0,7)/boot/vmlinuz-2.6.18-194.el5 ro root=/dev/sda8 rhgb quiet
initrd (hd0,7)/boot/initrd-2.6.18-194.el5.img

ro 参数告诉内核以只读方式加载根文件系统,以便进行文件系统完整性检查;

rhgb 指的是redhat graphics boot,图形界面启动显示;
quiet指的是,仅列出简要的信息。

其实,只要加上上面黑体的那句就可以启动了。
参考技术A /dev/VolGoup00/LogVo101

问题应该在这里:Volume group "VolGroup00"not found
--找不到卷组。

应该是你安装系统在分区的时候建立了卷组VolGoup00和逻辑分区LogVo101;
你的操作没看明白,是自己系统打包恢复?还是把第一个系统grub备份到第二个上?
1、自己打包恢复出问题,这个非正常错误很难找,尝试更新最新系统试试;
2、如果是不同机器系统备份的话,就是你第一个系统安装时建立了卷组,而第二个没有建,
建立卷组的有这项root=/dev/VolGroup00/LogVol101
没有卷组的是:root (0,0)
grub里启动项不同,而启动不了系统。

改的话,把root=……,改成root (0,0),应该能解决问题。
参考技术B grub操作不对。redhat 系列的喜欢用什么uuid 来标识一个分区。但这样给恢复带来了麻烦。

grub 操作是很简单的
root (0,0)
kernel /boot/vmlinuz ro quiet
initrd /boot/initrd.gz
就ok了。

好好查查grub用法。

在Linux系统如何让程序开机时自动启动

核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”-->“所有程序”-->“启动”里面放个快捷方式就行,那Linux系统下呢?...系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”-->“所有程序”-->“启动”里面放个快捷方式就行,那Linux系统下呢?
 
这也是一个比较简单的问题,有不少的方法可以解决,这里介绍三种方法。因为是简单介绍,所以具体细节不是很详细,可以通过man看看相关手册。
 
一、/etc/rc.local
这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。

使用命令 vi  /etc/rc.local   

然后在文件最后一行添加要执行程序的全路径。

例如,每次开机时要执行一个haha.sh,这个脚本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者两行“cd /opt”和“./haha.sh”。
 
二、crontab(类似于windows的任务计划服务)
通过crontab可以设定程序的执行时间表,例如让程序在每天的8点,或者每个星期一的10点执行一次。
crontab -l 列出时间表;
crontab -e编辑时间表;
crontab -d删除时间表;
 
“-l”没什么可说的,就是一个查看而已;
“-e”是编辑,和vi没什么差别(其实就是用vi编辑一个特定文件);
“-d”基本不用,因为它把该用户所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;
 
那到底该如何编辑呢?
 
crontab文件的格式是:M H D m d CMD。
一个6个字段,其中最后一个CMD就是所要执行的程序,如haha.sh。
M:分钟(0-59)
H:小时(0-23)
D:日期(1-31)
m:月份(1-12)
d:一个星期中的某天(0-6,0代表周日)
 
这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他) ,如果不需设置,则默认为“*”。
 
例如,每天的8点5分执行haha.sh,就是“5 8 * * * /opt/./haha.sh”。
 
好像和“开机程序自动启动”扯远了,现在回归正题。其实上面介绍的crontab的功能已经具备了开机自动启动的能力,可以写一个监测脚本,每5分钟执行一次(*/5 * * * * ./haha.sh),如果程序不在了就重新启动一次。
 
三、注册系统服务
操作系统自带的服务,如ssh,ftp等等,开机都是自动启动的,我们也可以通过这种方式让自己开发的程序提高“身价”。

 

比如我想把某个已经安装了的服务添加为系统服务,可以执行以下命令:

chkconfig --add 服务名称          (首先,添加为系统服务,注意add前面有两个横杠)

 

chkconfig -leve 启动级别 服务名 on         

(说明,3级别代表在命令行模式启动,5级别代表在图形界面启动,on表示开启)

 

chkconfig -leve 启动级别 服务名 off              

(说明,off表示关闭自启动)

 

例如:chkconfig -level 3 mysql on                     (说明:让mysql服务在命令行模式,随系统启动)

也可以使用   chkconfig --add 服务名称    来删除系统服务

******************************************************************************************

如果要查看哪些服务被添加为系统服务可以使用命令 :

   ntsysv  或者chkconfig --list

 

如果要查看哪些程序被添加为自启动,可以使用命令  :

cat   /etc/rc.local    (查看这个文件中添加了哪些程序路径)

*******************************************************************************************

 

 下面举例说说,如何把一个shell脚本添加为系统服务,并跟随系统启动:

可以看到“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本。
系统服务的启动就是通过“/etc/rc.d/init.d”中的脚本文件实现的。我们也可以写一个自己的脚本放在这里。
脚本文件的内容也很简单,类似于这个样子(例如起个名字叫做“hahad”):
. /etc/init.d/functions
start() {
        echo "Starting my process "
        cd /opt
        ./haha.sh
}
stop() {
        killall haha.sh
        echo "Stoped"
}
写了脚本文件之后事情还没有完,继续完成以下几个步骤:
chmod +x hahad                    #增加执行权限
chkconfig --add hahad             #把hahad添加到系统服务列表
chkconfig hahad on                 #设定hahad的开关(on/off)
chkconfig --list hahad               #就可以看到已经注册了hahad的服务

 
这时候才完成了全部工作。 

 

参考博文:http://www.cnblogs.com/gzggyy/archive/2012/08/07/2626574.html

以上是关于linux 开机时,提示Kernel panic - notsyncing:Attempted to kill init 就不动了。 不知道怎么回事儿。的主要内容,如果未能解决你的问题,请参考以下文章

redhat linux 无法启动 提示(kernel panic - not syncing:attempted to kill init!)

Linux因glibc导致kernel panic问题怎么修复

在Linux系统如何让程序开机时自动启动

Linux kernel panic代码解释

在Linux系统如何让程序开机时自动启动

在Linux系统如何让程序开机时自动启动