Centos 系统引导损坏修复、密码破解与加密

ramdisk(ramfs)丢失损坏

? 内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱动

没有此文件,系统无法加载 / 分区,也就无法启动系统。

CentOS 5 文件名: initrd

CentOS 6,7文件名: initramfs

当系统的ramfs文件丢失或损坏时,系统启动时表现为

修复如下:

进入救援模式,重新生成ramdisk文件即可。

为当前正在使用的内核重新制作ramdisk文件,以下2种指令都可以。

# mkinitrd initramfs-`uname -r`.img `uname -r`

# dracut initramfs-`uname -r`.img `uname -r`

GRUB相关

? MBR:

446: bootloader, 64: 分区表, 2: 55AA

? GRUB:


阶段


存放位置


作用


stage1


MBR的446字节内


MBR引导


stage1_5


MBR之后的27个扇区


让stage1中的bootloader能识别stage2所在的

分区上的文件系统,这个阶段可以加载驱动


stage2


/boot/grub(grub2)


grub的核心功能

stage1是以二进制存放于磁盘,并不是文件形式。

/boot/grub下的文件为:

主要是驱动与grub配置文件。这个目录下的文件只保留grub.conf的时候,系统是可以正常启动的

stage1破坏修复

stage1也就是bootloader所在,

模拟破坏(请不拿生产中的机器来做试验,本人不负责任)

#dd if=/dev/zero of=/dev/sda bs=1 count=446

系统启动时表现为

修复如下:

1.进入救援模式

2.启动一个shell

3.切换至原系统的根目录,一般救援模式进来的时候会提醒.(假如能找到/文件系统)

# chroot /mnt/sysimage

4.安装grub

方法(1) grub-install

安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到 DIR/boot目录下

grub-install  /dev/DISK .注意,是磁盘而非分区。--root-directory=DIR 参数可选

此方法会一并重新生成/boot/grub下除了grub.conf之外的文件

方法(2) grub

grub> root (hd#,#)

grub> setup (hd#)

可以看到系统已经写入GRUB信息至MBR

第2种方法修复时,需要/boot/grub下有这些文件

# ls -1

device.map  e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 grub.conf iso9660_stage1_5 jfs_stage1_5

menu.lst minix_stage1_5 reiserfs_stage1_5 splash.xpm.gz stage1 stage2 ufs2_stage1_5

vstafs_stage1_5 xfs_stage1_5

5.重启系统

#exit 并reboot

开机直接出现grub>

修复如下:

grub> root (hd#,#)  root目录指的是/boot分区所在的磁盘位置。

grub> setup (hd#)

小提示:root (hd0,然后按tab键补全,会有如下显示

输入kernel /vm 按tab键如果可以补全则说明是正确的,接着输入ro root=/dev/sda1 回车.注意(hd0,0)=/dev/sda1 (hd0,1)=/dev/sda2如图

接着输入initrd /ini 按tab键补全,回车

输入boot命令,这时系统会重新启动

stage1.5破坏修复

模拟破坏

# dd if=/dev/zero of=/dev/sda bs=1 count=13000 skip=512 seek=512

系统启动时表现为

修复如下:

进入救援模式

1.# chroot /mnt/sysimage

2.安装grub (上面有方法)

3.多输入几次sync

4.#exit并reboot

stage2破坏修复

grub.conf丢失

系统启动时表现为

修复如下:

进入救援模式

1.# chroot /mnt/sysimage

2.安装grub (上面有方法)

3.检查/boot/grub/grub.conf是否存在且正确

4.重启系统

内核文件被破坏

系统启动时表现为

修复如下:

进入救援模式

1.# chroot /mnt/sysimage

2.touch 一个文件 /boot检查磁盘是可写,如果为只读,mount -o remount,rw /dev/sdX /boot

3.如果挂载的救援模式是原ISO的DVD1的话,里面会有内核文件,如果没有DVD1光盘,请去其他地方下载同一内核版本的rpm包。

执行安装指令

# rpm -ivh /光盘位置或指定位置/Packages/kernel-2.6.32-696.el6.x86_64.rpm --force

4.重启系统

/sbin/init 丢失破坏

模拟破坏

# rm -rf /sbin/init

系统启动时表现为

此时输入什么都是报错误的

修复如下:

1.重启系统至引导菜单,注意按上下箭头,以免超时跳过去。按 e

2 在kernel一行中,按 e 编辑

使用 /bin/bash 代替sbin/init

按 b 启动系统

任意输入一条命令,如果能出来结果,表示 系统启用/bin/bash为第一个进程

3. 重新挂载 / 分区为 读写模式

#mount -o remount,rw /

4 挂载光盘

# mount /dev/sr0 /mnt

5.重新安装/sbin/init 。此执行文件对应的安装为upstart  各个操作系统版本不一样,注意即可。

# rpm -ivh /mnt/Packages/upstart-0.6.5-16.el6.x86_64.rpm --force

使用以下方法也能达到同样效果:

# rpm2cpio /mnt/Packages/upstart-0.6.5-16.el6.x86_64.rpm | cpio -idv ./sbin/init

# cp sbin/init /sbin/

6. # ls /sbin/init 是否已经生成。

7.直接按硬件按钮的重启吧

至此,修复完成

逻辑卷环境下 /boot分区破坏,/etc/fstab丢失

原先的系统是以LVM卷方式安装的

模拟破坏

# rm -rf /boot/ /etc/fstab

系统启动时表现为

修复如下:

进入救援模式

会提示

启动shell

1.#vgs 查看下VG卷

2. #fdisk -l找出原来系统的boot分区,带*号启动的应该是/boot

3.#lvdisplay查看LV卷状态,可以看到是未激活状态

4 .# vgchange -ay 激活VG卷

5 #lvdisplay查看LV卷状态,可以看到是已激活状态

6 #blkid 能看到分区文件系统和挂载路径和UUID

7.创建临时目录挂载找到的分区,确认/和/boot分区。注意,这里是支持TAB键补全的。

# mkdir /mnt/root

# mount /dev/VolGroup/lv_root /mnt/root

# mkdir /mnt/boot   正常情况,因为是使用rm -rf /boot 挂载时应该是没有任何文件的

# mount /dev/sda1 /mnt/boot

8 cat /etc/mtab 能看到目前挂载情况

9 创建原有系统的fstab ,注意这里生成的文件位置

#cat > /mnt/root/etc/fstab << eof

/dev/mapper/VolGroup-lv_root / ext4 defaults 0 0

/dev/sda1 /boot ext4 defaults 0 0

eof

10 #exit 选reboot

11.再次进入救援模式

现在救援模式能侦测到根系统了

按照向导开启shell

12 # chroot /mnt/sysimage

#lsblk 可以看出原有系统的挂载情况了

13 挂载光盘

# mkdir /mnt/cdrom

# mount /dev/cdrom /mnt/cdrom

14 安装内核

# rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-696.el6.x86_64.rpm --force

15 修复Grub

# grub-install /dev/sda

16 修复grub.conf

# vi /boot/grub/grub.conf   ,可以使用vi的命令这些功能

列出命令结果到当前编辑行的下一行,支持TAB补全

列出设备的UUID

最终写好的文件如下

#exit 重启

如果启用了selinux的话,系统会在第一次重启时进行配置、

第二次重新启动时,系统就正常了。之后再把把

17 把swap添加到fstab,并启用

UUID=8e0a6121-97d7-4c70-b113-bbe4cefe0380 swap swap defaults 0 0

# swapon -a

建议把fstab文件重新修正为使用UUID方式

至此,系统修复完成。

手动在grub命令行接口启动系统

grub> root (hd#,#)

grub> kernel /vmlinuz-VERSION-RELEASE ro

root=/dev/DEVICE

grub> initrd /initramfs-VERSION-RELEASE.img

grub> boot

root密码破解

方法1:

1.重启系统至引导菜单,注意按上下箭头,以免超时跳过去。

按 a ,健入以下字符,1代表是单用户模式

1, s, S或single都可以,之后直接回车启动系统

无需要输入密码就以root身份进入系统了,直接passwd root修改

方法2:

进入救援模式,chroot /mnt/sysimage 之后,直拉用passwd root修改

方法3:

进入救援模式,chroot /mnt/sysimage 之后,直接修改/etc/shadow ,把root的密码栏位清空。需要vi时加入wq!

不过,重启后注意尽快修改密码

grub加密

当然,既然有破解密码的,也有相应加强安全的.

将下面一行放入不同位置将会有不同的效果

password [--md5|--encrypted ] 加密的字符串

放在每个title之前行 : 启动grub菜单时进行进行认证

放在每个title之末尾行 : 启动选定的内核或操作系统时进行认证

生成grub口令

? grub-md5-crypt   对应的是--md5

? grub-crypt 对应的是--encrypted

原文地址:http://blog.51cto.com/191226139/2058884

时间: 2024-10-20 12:37:34

Centos 系统引导损坏修复、密码破解与加密的相关文章

Centos 系统引导与相关服务命令

内核组成部分: 核心文件:/boot/vmlinuz-VERSION-release ramdisk:辅助的伪根系统 CentOS 5: /boot/initrd-VERSION-release.img CentOS 6,7: /boot/initramfs-VERSION-release.img initramfs-2.6.32-696.el6.x86_64.img initramfs-3.10.0-693.el7.x86_64.img 模块文件:/lib/modules/VERSION-re

Centos7&Centos6 Root密码破解详解

Centos7&Centos6 Root密码破解详解 说到Linux的root登录密码,相信作为一个运维管理员都是一个敏感的问题,如果当管理员忘记root登录密码,需要破解的话是及其方便的,不像windows的登录密码破解,windows登录的密码破解我们需要介入工具进行破解,现在使用最多的是老毛桃等工具.而今天我们主要介绍一下centos7和cenos6的登录密码的破解方法.使用过Centos7的童鞋来说是有体会的,Centos7和Centos6版本的命令是有一定差别的,防火墙类型最为显著,从

CentOS 6.8 GRUB加密-修复和破解密码实战指南

    CentOS 6.8 GRUB加密和破解密码实战指南 案例1:服务器在公共场合,为了防止随便有人进入单用户破解root密码,先对GRUB引导进行加密,为了更加安全对启动内核时也加密 1.编辑grub配置文件 [[email protected] ~]# openssl passwd -1    //MD5加密转换 Password:  Verifying - Password:  $1$X8cVMw5v$AH0aUHVNix7Tx6wmHAXsf1 [[email protected] 

CentOS GRUB引导错误无法进入系统解决办法

本来想整个LFS试试,结果在最后关头设置LFS系统启动的时候挂了.其余的安装笔记没写多少,先来写写系统怎么挂的. 在LFS之前就在想,万一把我宿主机挂了咋办,没想到真挂了. 但我进行到LFS系统grub安装时,那LFS说明上说的也不明白,我做的也稀里糊涂.似乎把宿主机系统GRUB损坏了,重写了.结果LFS系统也没装好,重启后LFS进不去,宿主机系统就更别说了,根本没有宿主机进系统的选项.... 于是开始找办法,我想即便是LFS挂了,恢复出宿主机也好啊,结果手贱点错了,直接双击了.vmdk文件,立

Linux 系统密码破解

(一)CentOS Linux 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 [email protected]#passwd root (设置root的密码) Enter new unix password:输入新的密码 [email protected]#init 6 (二)ubuntu & debian linux 系统密码破解 1.在grub选项菜单'Debian GNU/Lin

linux系统引导过程及引导修复

系统的引导过程 1.通电 2.bios初始化 eg:内存,硬盘没插好 3.磁盘引导 硬盘里面的数据是以分区形式保存,硬盘上的磁头对硬盘的数据进行扫描##磁道:磁头转一周的轨迹,可以确定数据在哪一环##扇区:确定哪一节的数据##系统引导的过程:#装双系统时,启动windows时,磁头需跳到c盘数据位置,来读取里面的数据,才能启动系统##系统关闭以后,断电,磁头会回到断电的时候所在的位置,硬盘通电,硬盘会转起来,磁盘不会跳到c盘位置,还是在默认的位置(0磁道),如何让磁头跳到c盘,读取数据?#在装系

Linux基本安全措施、加强系统账号密码安全、系统引导和登录安全、用户切换、su、sudo、grub菜单

1. 基本安全措施 1.1系统账号清理 在Linux系统中,除了用户手动创建的以外,还包括随系统或程序安装过程中生成的其他大量用户,除了超级用户root外,其他大量账号只是用来维护系统运作.启动或保持服务进程,一般是不允许登录的,因此也成为非登录用户. 常见的非登录用户有:bin.adm.lp.mail.nobody.mysql.dbus.ftp.gdm.haldaemon等.为了确保系统安全,这些用户的登录Shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人改动. 各种非

Windows server 2008R2服务器系统登录密码破解

服务器密码忘记,或者被恶意修改,系统被入侵,都是很让人烦心的事情,我试过很多方法,包括使用PE工具删除C盘Windows\System\config里面的SAM文件,可是过程都相当华美,结果都相当杯具.后来,通过摸索,终于发现一种简单易行的方式.可以修改Windows server 2008R2系统的登录密码,并且能够保证系统可以尽快恢复正常,正常使用. 1.准备好一张和当前Windows server 2008R2系统版本和位数相近(最好相同)的系统镜像光盘或者ISO文件. 2.设置系统从光盘

【Linux系统】教您如何破解密码及防护

对于windows系统的密码破解只需做一个PE盘,然后进入boot启动项并从u盘启动即可去破解(一般百度都有这些详细的步骤).而现在我教大家的是如何破解Linux系统的密码.首先我用一台装有Linux6.5系统的虚拟机来实验.在不知Linux系统密码或在忘记Linux密码的情况下,开启系统,在开启系统时按ESC键进入如图所示的界面.通过如下提示按e键进入. 选择第二个在按e键进入,然后空格输入single后再回车.安b键启动. 在这里输入新的密码,这样密码就破解好了.虽然很简单但是如果做一些防护