project02 U盘系统与排错系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了project02 U盘系统与排错系统相关的知识,希望对你有一定的参考价值。
U盘系统与排错系统
制作U盘系统的两个主要目的:
1、以U盘为救援系统来修复有故障无法启动操作系统
修复步骤:
1)选尝试从单用户模式启动(内核和基本服务,可以参考/etc/rc.d/rc1.d/S..)
2)如果单用户模式也无法正常启动,可以考虑从光盘或者是U盘启一个linux操作系统,首选使用U盘
2、通过U盘系统的制作让你更了解一个主机上linux系统组成,以及启动流程
LINUX操作系统的组成:
内核 SHELL 应用程序 文件系统
内核
核心文件 vmlinuz
临时根文件 initrd(initramfs)
内核的库 /lib/modules/`uname -r`
SHELL(bash|csh|ksh)
应用程序(基本的命令coreutils|配置文件setup)
# rpm -qf /bin/ls
coreutils-8.4-19.el6.x86_64
# rpm -qf /etc/passwd
setup-2.8.14-16.el6.noarch
文件系统 filesystem
# rpm -qf /
filesystem-2.4.30-3.el6.x86_64
用户登录系统----对系统操作(filesystem) ------ 用户接口(应用程序) ----命令(SHELL[命令解释器]) ----- 调用库文件(api)---对内核发出指令 ----- 内核接口(*.ko) ----硬件(磁盘|内存|CPU|显卡)
回顾linux启动流程
RHEL5 基于init方式 <串行启动>
RHEL6 基于init+systemV <并行启动>
-----grub1
RHEL7 基于systemd方式 (引导器grub2)
第一部分 MBR
Bios --- HD ---- 512MBR表(bootloder引导记录446+DPT分区表4*16+checksum2)
第二部分 引导器 GRUB <加载MBR表>
GRUB组成
stage1 引导表MBR
stage2 grub.conf
stage1_5 (grub.exe本身,驱动包括磁盘,raid卡,文件系统,挂载/boot stage2的grub.conf)
bootloder --装载--stage1 ---- stage2(grub.conf)---menu.lst ---- stage1_5 ---DPT --- 挂载boot分区
root (hd0,0) ---挂载/dev/sda1
读取内核的核心文件vmlinuz
读取临时操作系统 initramfs
第三部分 启动第一个独立进程init
init ---> /etc/inittab ---> rc.sysinit ---mount -a /etc/fstab ---- 读取runlevel ----- /etc/rc.d/rcX.d --- /etc/rc.local
K关闭 S启动
部署U盘系统
1 清空U盘的分区表
[[email protected] ~]# umount /media/* -l
[[email protected] ~]# dd if=/dev/zero of=/dev/sdb bs=500 count=1
2 格式化U盘为ext4格式 将U盘定义第一个分区为可引导分区
[[email protected] ~]# fdisk -cu /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-15646719, default 2048):
Last sector, +sectors or +size{K,M,G} (2048-15646719, default 15646719):
Command (m for help): a
Partition number (1-4): 1
Command (m for help): p
Disk /dev/sdb: 8011 MB, 8011120640 bytes
247 heads, 62 sectors/track, 1021 cylinders, total 15646720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 15646719 7822336 83 Linux
Command (m for help): w
3 安装文件系统 <基础的目录 /bin /home /var>
[[email protected] ~]# mkdir /mnt/usb/
[[email protected] ~]# mount /dev/sdb1 /mnt/usb/
新建内存目录
[[email protected] ~]# mkdir /dev/shm/usb
[[email protected] ~]# yum -y install filesystem --installroot=/dev/shm/usb/
4 安装应用程序与SHELL
coreutils openssh-clients rpm yum net-tools bind-utils passwd vim-enhanced findutils bash util-linux lvm2 util-linux-ng
[[email protected] ~]# yum -y install coreutils openssh-clients rpm yum net-tools bind-utils passwd vim-enhanced findutils bash util-linux lvm2 util-linux-ng --installroot=/dev/shm/usb/
将数据写入到U盘
[[email protected] ~]# cp -av /dev/shm/usb/* /mnt/usb/
5 安装内核
[[email protected] ~]# cp /boot/vmlinuz-2.6.32-279.el6.x86_64 /mnt/usb/boot/
[[email protected] ~]# cp /boot/initramfs-2.6.32-279.el6.x86_64.img /mnt/usb/boot/
[[email protected] ~]# cp -av /lib/modules/2.6.32-279.el6.x86_64/ /mnt/usb/lib/modules/
查看/boot/initramfs-2.6.32-279.el6.x86_64.img 是否有usb驱动器
[[email protected] ~]# lsinitrd /mnt/usb/boot/initramfs-2.6.32-279.el6.x86_64.img |grep usb-storage
-rwxr--r-- 1 root root 128264 Jun 14 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/usb/storage/usb-storage.ko
6 安装Grub
--安装grub软件
[[email protected] ~]# rpm -ivh ftp://192.168.0.254/pub/rhel6/dvd/Packages/grub-0.97-77.el6.x86_64.rpm --root=/mnt/usb/ --nodeps
Retrieving ftp://192.168.0.254/pub/rhel6/dvd/Packages/grub-0.97-77.el6.x86_64.rpm
warning: /mnt/usb/var/tmp/rpm-tmp.1gHYSb: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:grub ########################################### [100%]
--安装grub驱动程序 grub-install
[[email protected] ~]# grub-install --root-directory=/mnt/usb/ --recheck /dev/sdb
grep: /mnt/usb//boot/grub/device.map: 没有那个文件或目录
mv: 无法获取"/mnt/usb//boot/grub/device.map" 的文件状态(stat): 没有那个文件或目录
Probing devices to guess BIOS drives. This may take a long time.
Installation finished. No error reported. ---安装成功 没有错误报告
This is the contents of the device map /mnt/usb//boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install‘.
(fd0)/dev/fd0
(hd0)/dev/sda
(hd1)/dev/sdb
[[email protected] ~]# ls /mnt/usb/boot/grub/
device.map fat_stage1_5 iso9660_stage1_5 minix_stage1_5 stage1 ufs2_stage1_5 xfs_stage1_5
e2fs_stage1_5 ffs_stage1_5 jfs_stage1_5 reiserfs_stage1_5 stage2 vstafs_stage1_5
新建grub.conf
[[email protected] ~]# cp /boot/grub/grub.conf /mnt/usb/boot/grub/
[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a0f87eaa-205f-4e35-99bf-f9b806359caf" TYPE="ext4"
[[email protected] ~]# vim /mnt/usb/boot/grub/grub.conf
default=0
timeout=5
splashimage=/boot/grub/splash.xpm.gz
title My Usb System From Hugo
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-279.el6.x86_64 ro root=UUID=a0f87eaa-205f-4e35-99bf-f9b806359caf selinux=0
initrd /boot/initramfs-2.6.32-279.el6.x86_64.img
完善配置文件与系统
/etc/fstab
/etc/passwd|group|shadow
[[email protected] ~]# vim /mnt/usb/etc/fstab
UUID="a0f87eaa-205f-4e35-99bf-f9b806359caf" / ext4 defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
设置root用户为空密码登录
[[email protected] ~]# sed -i s/root:x:/root::/ /mnt/usb/etc/passwd
定义环境变量
[[email protected] ~]# cp /etc/skel/.bash* /mnt/usb/root/
[[email protected] ~]# chroot /mnt/usb/
[[email protected] /]# exit
exit
定义主机名
[[email protected] ~]# vim /mnt/usb/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=usb.hugo.edu
[[email protected] ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /mnt/usb/etc/sysconfig/network-scripts/
[[email protected] ~]# vim /mnt/usb/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.0.100
NETMASK=255.255.255.0
ONBOOT=yes
[[email protected] ~]# sync --同步数据
[[email protected] ~]# umount /mnt/usb/
---测试 重启设备 从U盘引导启动
--------------------------------------------------------------------------------------------------
Trouble Shotting 排错系统
LINUX操作系统的组成:
1、kernel
2、中间件软件
3、应用软件
级别一:应用软件运行有问题
解决:看日志(debug)
级别二:启动问题(需要非常熟悉启动流程)
LINUX的系统级别模式:
1、正常模式(35)
2、单用户模式
3、从第三方介质启动一个救援系统,通过这个系统来修复损坏系统
什么是救援模式:
从第三方介质启动操作系统,用于维护硬盘中已经损坏的操作系统。
什么情况下使用救援模式:
原系统无法正常启动,单用户模式也无法启动,这时可以考虑从网络或者光盘中启动救援系统。
如果单用户模式能使用就使用单用户模式。
进入救援模式的方法:
1、从安装光盘启动在安装系统的介面输入:linux rescue
2、从网络启用救援模式:label_name(相应的系统标签), tab键之后加上 “linux rescue” 这个参数
3、从U盘启动一个救援系统
+++++++现象+++++++
****故障出现在第一部分*******
1.MBR丢失,启动系统停滞不前
a.从网络启动救援系统: 标签 linux rescue
b.找出原来分区结构
c.修复主引导记录(mbr)
第一种方法修复mbr
grub-install --root-directory=/mnt/linux --recheck /dev/sda
第二种方法修复mbr
grub
grub> root (hd0,0)
grub> setup (hd0)
****故障出现在第二部分********
2.出现grub>停滞不前 (mbr已经引导完毕将启动权限交给grub,但grub.conf丢失)
a.从救援模式重启后,手工配置grub来引导操作系统
b.手动引导grub ,进入系统之后 新建grub.conf文件
c.进出救援模或者单用户模式重建grub.
****故障出现在第三部分********
1>初始化过程中配置文件或者命令丢失
/etc/fstab文件丢失
mount命令丢失
a 进入救援模式(修复fstab文件|修复mount命令)
2> 反复重启
检测
/etc/inittab
/etc/rc.d/rc.sysinit
/etc/rc.local
3> 管理员没密码/普通用户无法登录:
a.进入单用户模式
b.修改密码
c. init 5
4> 配置文件的权限基于目录的权限
/tmp
======================================
1> 从网络引导 进入Rescue模式
2> 通过查看分区表fdisk -l 以及挂载分区 df -h
判断结论: MBR丢失?
查看系统的MBR表是否完整
dd if=/dev/sda of=./mbr bs=512 count=1
hexdump mbr
--不完整
修复MBR
2种方式
可以使用光盘的救援模式
setup模式(stage1|stage2|stage1_5存在)
grub> root (hd0,0)
grub> setup (hd0)
U盘的救援模式
grub-install模式 (stage1|stage2|stage1_5不存在)
1) 先安装grub软件
2) 挂载boot分区与根分区(LVM)
挂载根分区的lv的时候 发现不了lvm
激活vg
vgchange -ay VGNAME
mkdir /mnt/root/
mkdir /mnt/root/boot
mount /dev/mapper/vol0-root /mnt/root
mount /dev/sda1 /mnt/root/boot
3) grub-install
grub-install --root-directory=/mnt/usb/ --recheck /dev/sdb
修复grub.conf
进入U盘系统 重新定义grub.conf
mkdir /mnt/root/
mkdir /mnt/root/boot
mount /dev/mapper/vol0-root /mnt/root
mount /dev/sda1 /mnt/root/boot
vim /mnt/root/boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
title RedHat 6.3 Os
root (hd0,0)
kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/xxx
initrd /initramfs-2.6.32-279.el6.x86_64.img
--------------------直接进入单用户模式修复
修复init 信息
/etc/inittab /etc/rc.d/rc.sysinit /etc/fstab /etc/rc.local
丢失mount命令
进入U盘系统 修复mount命令
丢失配置文件 /etc/fstab
系统不断重启
/etc/inittab -- 无级别
rc.sysinit -- 追加reboot
/etc/rc.local --reboot
管理员密码锁定
/etc/passwd 与/etc/group 权限
tmp目录的权限
本文出自 “11625502” 博客,请务必保留此出处http://11635502.blog.51cto.com/11625502/1782695
以上是关于project02 U盘系统与排错系统的主要内容,如果未能解决你的问题,请参考以下文章