1. 程式人生 > >LINUX系統開啟故障排錯及linux-4.16.8內核編譯安裝

LINUX系統開啟故障排錯及linux-4.16.8內核編譯安裝

grub1.5 grub2 linux4.16.8編譯安裝 系統引導排錯 自制linux系統

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 #開始新內核之旅吧

LINUX系統開啟故障排錯及linux-4.16.8內核編譯安裝