可以进入linux的救援模式恢复。
系统在引导期间,很重要的一个过程就是init进程读取其配置文件/etc/inittab,启动系统基本服务程序及默认运行级别的服务程序完成系统引导,如果/etc/inittab误删除或修改错误,Linux将无法正常启动。此时,只有通过救援模式才可以解决此类问题。
1、有备份文件的恢复办法
进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等要进行备份),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grubconf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittabbak,则在救援模式下执行:
sh-31# chroot /mnt/sysimage
sh-31# cp /etc/inittabbak /etc/inittab
2、没有备份文件的恢复办法
如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):
sh-31# chroot /mnt/sysimage
sh-31# rpm -qf /etc/inittab
initscripts-8453-1
退出chroot模式:
sh-31# exit
挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下):
sh-31# mount /dev/hdc /mnt/source
Fedora系统的RPM包存放在光盘Fedora/RPMS目录下,其他Linux存放位置大同小异,这里不一一列举;另外,因为要修复的硬盘系统的根目录在/mnt/sysimage下,需要使用--root选项指定其位置。覆盖安装/etc/inittab文件所在的RPM包:
sh-31# rpm -ivh --replacepkgs --root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8453-1i386rpm
其中的rpm命令选项“--replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。
如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,执行命令:
sh-31# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8453-1i386rpm
| cpio -idv /etc/inittab
sh-31# cp etc/inittab /mnt/sysimage/etc
注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。
不使用yum补包将是一个非常痛苦的过程
否则就不会出现yum了
可以根据提示的库文件名称 查供应商名
yun whatprovider lib名称
然后再安装盘里找对应rpm安装
但是安装子包也同样可能出现依赖问题
可以试试整个安装系统的开发工具组
yun groupinstall develop tools
-q代表query,-a代表all
虽然现在N多人都使用yum去替代rpm了,但是rpm在一些特俗场合下还是有其作用的,比如查询跟验证已安装的rpm包,rpm全称Redhat Package Manager,是一种用于包的打包及安装工具,它包含在某些Linux分发版中,它生成具有RPM扩展名的文件,与Dpkg类似。
1安装软件包
rpm -ivh rpm 其中i表示安装,v表示输出,h表示用#作进度标记
2升级软件包
rpm -Uhv rpm
3删除软件包
rpm -e package_name
rpm -e –nodeps package_name 不考虑依赖包
rpm -e –allmatches package_name 删除所有跟package_name匹配的所有版本的包
4查询软件包
rpm -q package_name
rpm -qp rpm 获取当前目录下的rpm包相关信息
rpm -qa | less 列出所有已安装的软件包
rpm -qf /etc/sysctlconf 查看某个文件属于哪个软件包
rpm -qi package_name 列出已安装的这个包的标准详细信息
rpm -qlp package_name 列出rpm包的文件内容
rpm -q –scripts kernel | less 列出已安装rpm包自带的安装前和安装后脚本
rpm -qa –queryformat ‘Package %{NAME} was build on %{BUILDHOST}\n’ | less queryformat强大的查询
rpm –querytags | less 可以列出queryformat可以使用的所有变量从而组合成更强大的查询
5检查已安装软件包
rpm -Va | grep bin
检查失败的字符:
S:文件大小不符,M:模式不符,5:MD5校验和不符,U:用户所有权不符,G:用户组所有权不符,T:mTime不符
6重建rpm数据库
rm /var/lib/rpm/__db00
rpm –rebuilddb 在rpm数据库已破坏且不能安装软件包的时候使用此大发
7从rpm提取文件
rpm2cpio rpm | cpio -idv /路径/文件名
yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,后经杜克大学的 Linux@Duke开发团队进行改进,遂有此名。yum是软件的仓库,它可以是>
一般Linux软件安装有这么几种方式:
那么其中rpm与yum有什么区别呢?
RPM管理支持事务机制。增强了程序安装卸载的管理。
RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。
1、RPM的缺点
由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。
2、RPM包
用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的。RedHat的RPM包与SUSE的RPM包不能混用。实际上RedHat的安装,初始软件也都是使用RPM包进行安装的。
源程序的命名规范 : name-versiontar{gz|bz2|xz}
版本号:majorminorrelease
例:bash-431tarxz
RPM包的命名规范 : name-version-releaseosarchrpm
name:程序名称。
version:程序版本号。
release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。
os:即说明RPM包支持的 *** 作系统版本。如el6(即rhel6)、centos6、el5、suse11。
arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)
例:bash-432-5el6x86_64rpm
3、安装RPM包
命令格式: rpm -i /PATH/TO/RPM_FILE
一般组合起来使用:-ivh
命令格式: rpm -ivh PATH/TO/RPM_FILE
4、卸载RPM包
命令格式: rpm -e 包名
查询RPM相关信息
命令格式: rpm -q 包名
查询所有已经安装包: rpm -qa
5、RPM的数据库
数据库文件位于: /var/lib/rpm
若库损坏,很多RPM的查询将无法使用。
YUM客户端基于RPM包进行管理,可以通过>
以上就是关于linux 系统文件改错,进不了系统怎么办我用的是netbook版本 的!全部的内容,包括:linux 系统文件改错,进不了系统怎么办我用的是netbook版本 的!、linux下安装rpm缺少库的问题。、Linux rpm -qa | grep vsftpd 中的 rpm的 -q 和 -a 参数分边代表什么!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)