实验环境:删除boot上的几个主要个文件:


config-2.6.18-164.el5
grub
initrd-2.6.18-164.el5.img
symvers-2.6.18-164.el5.gz
System.map-2.6.18-164.el5
vmlinuz-2.6.18-164.el5
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

修复过程:

1.先入放入光盘,从CD-ROM启动Linux,进入Linux急救模式
boot: linux rescue
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
2.挂载光盘, 安装被删文件所需要的rpm包
mount /dev/hdc /mnt/source
rpm -ivh --root=/mnt/sysp_w_picpath /mnt/source/Server/kernel-xxx.rpm --force

3.安装grub,手工编写grub配置文件
chroot /mnt/sysp_w_picpath   #更改root目录
grub-install /dev/sda   #安装grub
vim /boot/grub/grub.conf
default=0 #默认加载第几个系统,从0起算
timeout=5 #启动时停留在Grub配置界面中的时间
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz #Grub的背景图片
hiddenmenu #是否隐藏菜单
title Red Hat Enterprise Linux Server (2.6.18-8.el5) #操作系统的标题
root (hd0,0) #操作系统的引导分区
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet #设置加载的内核
initrd /initrd-2.6.18-164.el5.img4 #设置加载必要的驱动(内存磁盘文件)

4.退出,重启
exit
sync
reboot

说明:grub.conf

 default - 默认引导的菜单条目。
timeout - 自动选择默认引导前菜单显示的时间。本例中,如果用户没有在 5 秒之内选择操作系统,则会默认引导第一个条目 (即default 0)
splashp_w_picpath - 指定 GRUB 引导菜单的界面风格。(hd0,0)/grub/splash.xpm.gz,是指在第一块硬盘的第一个分区(hd0,0) 中,使用 grub 目录下的 splash.xpm.gz 文件作为界面风格。一般来讲,无需更改这个配置
hiddenmenu - 隐藏 GRUB 引导菜单。如果不想在启动时显示 GRUB 引导菜单,则删除此条目。

系统引导条目

title - 引导条目的名称。通常使用操作系统的名称做为标识,你可以自行更改这个名称,例如使用 "Fedora 12", "Fedora", 或者是 "MyLinux" 都可以。这个标题将显示在 GRUB 引导菜单中。
root - 操作系统内核和引导文件所在的磁盘分区。(hd0,0) 表示第一块硬盘的第一个分区,(hd0,2) 表示第一块硬盘的第3个分区,依次类推。 (0开始算起),这里面的root不是root用户,就是代表/
kernel - 系统内核及 boot 命令用到的参数。
initrd - 系统引导程序

boot分区是不是可以被umount的掉

我如果不删除/boot分区里面的重要的文件的话,直接umount /boot分区的话,重启会不会导致系统启动不了呢?
答案是不会。
我们可以到Linux下的/etc/fstab命令来查看Linux启动时的挂载情况及顺序
  
可以看到上面,已经定义了在启动时默认到/boot目录下去寻找启动文件,所以即便我们把boot分区umount掉了,重启后还是能够正常进入的。它是靠什么自动加载的呢?其实fstab 文件中的 defaults 就包含了 "auto" 功能,除非明确指定 noauto ,否则开机都会自动挂载。
 
简单的对etc/fstab做个介绍
/etc/fstab是用来存放文件系统的静态信息的文件。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。下面我来介绍如何在此文件下填写信息。
我们要关注的是它的六个域,分别为:<file system>、<mount point>、<type> 、<options>、<dump>、<pass>。
 1、<fie sysytem>。这里用来指定你要挂载的文件系统的设备名称或块信息,也可以是远程的文件系统。做过嵌入式linux开发的朋友都可能知道mount192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意义。它的任务是把IP为192.168.1.56的远程主机上的/home/nfs/目录挂载到本机的/mnt/nfs /目录之下。如果要把它写进/etc/fstab文件中,file system这部分应填写为:/192.168.1.56:/home/nfs/。
   如果想把本机上的某个设备(device)挂载上来,写法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一个串口硬盘的第一个分区,也可以是第一个SCSI硬盘的第一个分区,/dev/hda1表示第一个IDE硬盘的第一个分区,/dev/cdrom 表示光驱。
   此外,还可以label(卷标)或UUID(Universally Unique Identifier全局唯一标识符)来表示。用label表示之前,先要e2label创建卷标,如:e2label /dir_1 /dir_2,其意思是说用/dir_2来表示/dir_1的名称。然后,再在/etc/fstab下添加:LABEL=/dir_2 /dir_2 <type>   <options> <dump> <pass>。重启后,系统就会将/dir_1挂载到/dir_2目录上。对于UUID,可以用vol_id -u /dev/sdax来获取。比如我想挂载第一块硬盘的第一个分区,先用命令vol_id -u /dev/sda11 来取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在<file system>这个域上填写: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般会使用label,而Ubuntu linux 一般会用UUID。
   2、<mount point>。挂载点,也就是自己找一个或创建一个dir(目录),然后把文件系统<fie sysytem>挂到这个目录上,然后就可以从这个目录中访问要挂载文件系统。对于swap分区,这个域应该填写:none,表示没有挂载点。
       3、<type>。这里用来指定文件系统的类型。下面的文件系统都是目前Linux所能支持的:adfs、befs、cifs、ext3、 ext2、ext、iso9660、kafs、minix、msdos、vfat、umsdos、proc、reiserfs、swap、 squashfs、nfs、hpfs、ncpfs、ntfs、affs、ufs。
   4、<options>。这里用来填写设置选项,各个选项用逗号隔开。由于选项非常多,而这里篇幅有限,所以不再作详细介绍,如需了解,请用 命令 man mount 来查看。但在这里有个非常重要的关键字需要了解一下:defaults,它代表包含了选项rw,suid,dev,exec,auto,nouser和 async。
   5、<dump>。此处为1的话,表示要将整个<fie sysytem>里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。
   6、<pass>。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字 的同时检查。比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个 分区。
 
红内容来源于作者:陈景忠http://hi.baidu.com/jingzhongchen/blog/item/8e6f552dcead7ce98b139952.html

给GRUB加密码

GRUB加密分为两种。
  1、全局加密
  2、局部加密
全局加密:
  功能:锁定启动界面,禁止了
  e  to edit the commands before booting
  a  to modify the kernel arguments before booting
  c  for a command-line
然后我们看看全局加密码后的效果。需要按P,输入全局密码才可以编辑查看commands.这样就可以保护我们的局部密码了。不输入全局密码可以直接回车开始启动系统,如果你还有局部密码,就需要输入局部密码。
 
局部加密:相对与某个特定的系统来进行控制
功能:用户必须输入密码才能进入系统。 例:(你的电脑是双系统,如果你只给一个加密的话,那么启动另一个就不需要密码)
下面我们来看看怎么实现这些功能
先说局部加密:
  由于每个系统都是由title 来标志的,所以我们局部加密就是在这个标志后加入相应的语句。
  加密分两种
  1、明文
  2、MD5加密。
  具体方法如下图
 
 上面就是对grub进行的密文加密,明文加密,就是在password后面"空格+密码"就OK,
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
$1$J7NPh/$77Q7IpLMzwetf2.adDQcN.
可以通过grub-md5-crypt来计计算MD5值,上面的MD5的值是"123456",直接拷贝到/boot/grub.grub.conf中就可以了。然后就保存退出,从新启动就需要你输入密码才能进入系统。但是我们可以在启动画面用e键编辑进入command模式就可以查看密码。我们需要怎么杜绝这种事情发生呢?那就需要全局加密,不让其他人具有编辑的权限。
全局加密:
  如上,生成一个MD5密码。然后进入/boot/grub/grub.conf (明文,直接填加明文);在第一个title标志前面加如我们的密码,如图,timeout5后面就是我们对全局的加密。
 
 这样其他人需要全局密码才能查看局部密码。
这只是简单整理以上内容,说明boot分区的修复和加密码,接着研究linux的启动过程,还linux的inodes的结构图

转载于:https://blog.51cto.com/dongdiy/366867

修复boot分区文件被删除的方法相关推荐

  1. linux引导分区被格式化修复,/boot分区、fstab文件、/bin/mount一次性被误除修复方法...

    fstab文件丢失.boot分区被删.mount文件被删解决办法 1.解决问题的思路: a.修复fatab文件 b.修复mount命令 c.修复boot分区 d.安装grub 准备:将boot分区进行 ...

  2. c语言删除文件 Windows,基于Windows API实现遍历所有文件并删除的方法

    本文实例讲述了基于Windows API实现遍历所有文件并删除的方法.分享给大家供大家参考.具体分析如下: 最近一直在学windows API,弄了一些好玩的东西(有点恶作剧了,请大家谨慎使用)... ...

  3. mumu模拟器残留文件无法删除解决方法

    mumu模拟器残留文件无法删除解决方法 卸载mumu模拟器之后发现在我的硬盘上还有文件残留,并且一直显示文件已在***打开,无法进行删除,于是我在资源管理器中禁用了nemuservice,发现还是无济 ...

  4. 计算机无法删除u盘里东西,u盘出现文件无法删除怎么办 u盘出现文件无法删除解决方法【详解】...

    u盘是我们在工作中比较常用的移动存储设备,而使用久了,没用的文件也就随之而增,那么我们就会对其进行垃圾清理,而在清理垃圾文件的过程中是否有遇到过 文件无法删除 的现象?遇到这样的现象该怎么办呢?今天I ...

  5. nul文件无法删除解决方法,巨好用

    经常文件夹中有莫名其妙的nul文件,删除不掉,强迫症让我很难受,然后就看到有人写了博客是这样解决的,首先新建一个txt文件,后缀修改为.bat,然后将这一段复制进去, DEL /F /A /Q \\? ...

  6. c盘哪些文件可以删除_Win7下C盘哪些文件可以删除?

    机子用久了之后,就会变得越来越卡,主要原因还是因为Win7系统下C盘存放着大量文件占着内存,其实C盘中很多文件是可以删除的,我们要如何知道呢?赶紧跟着小编来学学如何判定哪些文件是可以删除的吧. Win ...

  7. mysql库文件修复_mysql数据库文件修复

    多数情况下,数据库被破坏只是指索引文件受到了破坏,真正的数据被破坏掉的情况非常少.大多数形式的数据库破坏的的修复相当简单. 和前面的校验一样,修复的方式也有三种. 下面讲的方法只对MyISAM格式的表 ...

  8. 计算机清理垃圾文件丢失怎么恢复,电脑文件数据删除怎么恢复-互盾数据恢复软件...

    现在电脑是很多做办公室人的常用工具,而且电脑中不免存储了很多重要的文件数据,但是在操作电脑过程中不小心很容易把重要数据当做垃圾文件删除清理了,导致找不回来重要文件,那么电脑数据删除或者丢失了怎么才能恢 ...

  9. 服务器里的文件怎么删除

    我们都知道WinSxS是系统文件Windows目录下一个非常重要的文件夹,WinSxS文件夹里边有很多重要的组件,这些文件能够保证Windows7系统正常运行,所以WinSxS文件夹里面的文件是不可以 ...

最新文章

  1. PHP::转义与反转义函数 (POST/GET/COOKIE)
  2. 第十六届智能车竞赛总决赛线上比赛赛道设计
  3. python英语翻译-python制作英语翻译小工具
  4. 第九章 字符串,字符和字节
  5. char* 大小_SQL Server中char, nchar, varchar和nvarchar数据类型有何区别
  6. python函数作为参数例题_笨办法学Python 习题 19: 函数和变量
  7. 关于硬件信息和体系信息
  8. 标准库rand()函数的缺陷以及Blitz++随机数生成的简介
  9. 【loj6029】「雅礼集训 2017 Day1」市场 线段树+均摊分析
  10. 旷视Face++回清华求教AI本质创新,姚期智授2锦囊,出任首席顾问
  11. 深度学习与NLP简单应用
  12. idea快捷键最全最新最好
  13. 计算机excel中百分比怎么算,excel如何自动算百分比
  14. 利用朴素贝叶斯分析鸢尾花,代码有详细解释。
  15. TMS320F280049 I2C IIC 相对于库函数操作CAT24C02 中文
  16. 修身齐家治国平天下 读 战国策 和 编程卓越之道 有感
  17. 2020年11月 工信部考试——Hadoop(数据应用技术)中级认证3
  18. 如何查看谷歌账户的实际消费金额和扣款金额是否一致?
  19. Linux安装GIT最新版
  20. spring号外0-1 不能连接网络时,spring 配置解决办法

热门文章

  1. python学习day06--01
  2. 团队作业-Beta冲刺(周三)
  3. jQuery可放大预览的图片滑块
  4. 蓦然回首,我是如何走上数据库开发这条路的?(一)
  5. Struts2学习笔记04 之 拦截器
  6. javascript(js)获取访客通过搜索引擎进入页面的搜索关键词的简洁有效代码
  7. form表单提交时,同一个名字的input类型的两个同时提交会覆盖吗
  8. .NET:如何声明某个程序需要管理员权限
  9. Json转换值类型字段为空字符串时报错问题
  10. CSS中list-style详解