LINUX系统开启故障排错及linux-4.16.8内核编译安装

1、破解root口令,并为grub设置保护功能

1).进入单用户模式 在 GRUB 启动菜单里使用 “e” 操作按键进入 CentOS 的启动菜单向界面 ,移动光标至“kernel”配置项一行,在末尾加入single,ctrl+x,然后进入bash#页面
2).进入单用户模式后,不需要输入用户名和口令,系统启动完成后将直接获得管理员 root 的权限,控制台的提示符为“#”,需要以rw方式挂载/ mount -o remount rw /
3).输入passwd命令,键入两次新密码即可完成更改。破解root口令
4).vi /boot/grub/grub.conf
password --md5 passwd #grub-crypt 键入两次新密码即可完成生成MD5加密密码passwd,下次系统进入grub引导需要密码才能进入

2、破坏本机grub stage1,而后在救援模式下修复之

1).reboot后按下ESC,即可通过光盘引导,进入救援环境mbr446字节被破坏,备份数据到/data/mbr,采用dd命令
2)dd if=/data/mbr of=/dev/sda1 bs=1 count=446

3、删除vmlinuz和initramfs文件后无法启动,两种方法恢复之

reboot后按下ESC,即可通过光盘引导,进入救援环境

mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
chroot /mnt/sysimage   #切换/
mkinitrd /boot/initramfs-`uname -r`.img `uname -r `
cp /mnt/cdrom/isolinux/vmlinuz  /boot/vmlinuz-`uname -r`
sync
sync #写入磁盘

方法二、

mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-696.e16.x86_64.rpm --root=/mnt/sysimage/ --force
ls /mnt/sysimage/boot

4、增加新硬盘,在其上制作能单独运行kernel和bash的系统

fdisk /dev/sdb
mkfs.ext4 /dev/sdb1  #/dev/sdb1对应/boot /dev/sdb2对应根 /
mkfs.ext4 /dev/sdb2
mkdir /mnt/boot
mount /dev/sdb1 /mnt/boot
grub-install --root-directory=/mnt /dev/sdb
cp /boot/vmlinuz-2.6.32-642.el6.x86_64 /mnt/boot/
cp /boot/initramfs-2.6.32-642.el6.x86_64.img /mnt/boot
cat >> /mnt/boot/grub.conf <<EOF
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs-2.6.32-642.el6.x86_64.img
EOF

chroot /mnt/sysroot
mkdir /mnt/sysroot
mount /dev/sdb2 /mnt/sysroot
mkdir –pv
/mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}
#复制bash和相关库文件
#复制相关命令及相关库文件

5、在U盘上定制linux,使其可启动系统,并具有网络功能

6、删除/etc/fstab和/boot目录的所有文件,并恢复之

1).reboot后按下ESC,即可通过光盘引导,进入救援环境
fdisk -l  #查找对应的根在那个硬盘分区
mkdir /mnt/rsroot
mount /dev/sda2 /mnt/rsroot
cat >> /mnt/rsroot/etc/fstab <<EOF
/dev/sda2  /  exrt4  defaults 0 0
/dev/sda1 /boot exrt4  defaults 0 0 #临时恢复fstab文件
EOF
sync
exit

2).恢复fstab后,reboot后按下ESC,即可通过光盘再次引导,进入救援环境
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/kernel-2.6.32-696.e16.x86_64.rpm --root=/mnt/sysimage/ --force
ls /mnt/sysimage/boot

chroot /mnt/sysimage #切根/
grub-install -- /dev/sda
cat > /boot/grub.conf
default=0
timmeout=5
title linux
    root(hd0,0)
    kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/sda3
    initrd /initramfs-2.6.32-696.el6.x86_64.img

ps:/boot/grub的配置文件:除了grub.conf ,splash.xpm.gz,系统干净的情况下,其他文件可以不存在;2.经过grub-install 后,/boot/grub所有文件都和启动相关,不可破坏

7、编译安装kernel,启用支持ntfs文件系统功能

下载 linux-4.16.8.tar.xz

tar -xvf linux-4.16.8.tar.xz
cd linux-4.16.8
cp /boot/config-3.10.0-862.el7.x86_64 .config
yum gruopinstall "Development Tools"
yum install ncurses
make menuinstall  #报错的可以安装一下,yum install ncurses ,基于curses的文本窗口 ,第一次编译安装的时候,yum gruopinstall "Development Tools"
#  General setup  --->  Local version - append to kernel release ---> enter,修改内核版本号相关参数
#  File systems  --->   DOS/FAT/NT Filesystems  --->  NTFS file system support ,修改linux可以支持NTFS文件系统
#  exti 保存
make -j [#]  ##代表cpu数量,越多编译速度越快,最后大概生成10-11G文件,全部编译
{
#只编译某子目录中的相关代码
cd /usr/src/linux
#make dir/
#只编译一个特定的模块
cd /usr/src/linux
#make dir/file.ko
make drivers/net/ethernet/intel/e1000/e1000.ko
}
make modules_install
#cp 相关模块到/lib/mouduls
make install
#安装bzImage为/boot/vmlinuz-VERSION-RELEASE
#生成initramfs文件
#编辑grub的配置文件
make clean #清理大多数编译生成的文件,但会保留config文件等
make mrproper #:清理所有编译生成的文件、config及某些备份文件
make distclean #mrproper、patches以及编辑器备份文件
reboot #开始新内核之旅吧

猜你喜欢

转载自blog.51cto.com/13698281/2115455