U盘系统

制作U盘系统的两个主要目的:
    1、以U盘为救援系统来修复有故障无法启动操作系统
            修复步骤:
                    1)选尝试从单用户模式启动(内核和基本服务,可以参考/etc/rc.d/rc1.d/S..)
                    2)如果单用户模式也无法正常启动,可以考虑从光盘或者是U盘启一个linux操作系统
                        1)首选使用U盘
    2、通过U盘系统的制作让你更了解一个主机上linux系统组成,以及启动流程


LINUX操作系统的组成:
    1)内核            --完成硬件的控制或者叫调度
            1、/boot/vmlinuz-`uname -r`        --内核核心
            2、/boot/initrd-`uname -r`.img        --外挂驱动程序(临时根文件系统ramdisk)
            3、/lib/modules/`uname -r`        --内核的模块
    2)中间层软件(库)    --完成接口功能(应用软件-->接口-->内核)
    3)各种应用软件    --完成各种用户功能
    4)引导器(grub)


回顾LINUX启动流程:
1、加电自检(bios)
2、根据第一启动选项(硬盘)来引导系统
3、从硬盘第一个扇区(512b)找到MBR
4、grub分为三个阶段:grub stage1(mbr)-->stage1.5(grub本身和磁盘驱动)-->grub stage2(grub.conf)
5、grub.conf-->/boot/(vmlinuz/inird.img)启动内核
6、启动第一个进程init(1)
7、init-->/etc/inittab-->/etc/rc.sysinit-->/etc/rc.d/rc[0-6].d/Sxxyy-->/etc/rc.local


1)部署应用软件
1)分区格式化U盘,记U盘拥有启动功能
# fdisk /dev/sdb    --分区
# partprobe /dev/sdb
# fdisk -l /dev/sdb

Disk /dev/sdb: 2063 MB, 2063597568 bytes
226 heads, 39 sectors/track, 457 cylinders
Units = cylinders of 8814 * 512 = 4512768 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         457     2013979+  83  Linux

# mkfs.ext3 /dev/sdb1
# mkdir /mnt/usb
# mount /dev/sdb1 /mnt/usb

2)安装必要的应用软件
# rpm -qf /
filesystem-2.4.0-2        --第一需要安装的软件(生成根目录下的所有默认目录)
# mkdir /dev/shm/usb
# yum -y install filesystem --installroot=/dev/shm/usb
# yum -y install coreutils openssh-clients rpm yum net-tools bind-utils passwd vim-enhanced findutils bash util-linux --installroot=/dev/shm/usb
# cp -av /dev/shm/usb/* /mnt/usb/



3)部署内核
内核的组成:
        1)vmlinuz-`uname -r`
        2)initrd-`uname -r`.img
        3)/lib/modules/`uname -r`

# cp /boot/xen.gz-2.6.18-164.el5 /mnt/usb/boot/
# cp /boot/vmlinuz-`uname -r` /mnt/usb/boot/
# cp -r /lib/modules/`uname -r` /mnt/usb/lib/modules/
# mkinitrd --with usb-storage /mnt/usb/boot/initrd-`uname -r`.img `uname -r`

解开initrd.img(临时根文件系统,是在系统加载根分区之前来驱动系统所需要驱动)文件
# mkdir /tmp/initrd
# cp /mnt/usb/boot/initrd-2.6.18-164.el5xen.img /tmp/initrd
# cd /tmp/initrd
# zcat initrd-2.6.18-164.el5xen.img | cpio -i
# rm  -rf initrd-2.6.18-164.el5xen.img
# find . | cpio -oc >> ../initrd.img
# gzip -9 /tmp/initrd.img
# \cp /tmp/initrd.img.gz /mnt/usb/boot/initrd-2.6.18-164.el5xen.img

4)完善各类配置文件
a)完善账号和密码
# \cp -a /etc/passwd /etc/shadow /mnt/usb/etc/

b)完善U盘的自动挂载fstab
# blkid /dev/sdb1
/dev/sdb1: UUID="2a59bc5c-7c35-4632-9db7-90bea7d9daf1" SEC_TYPE="ext2" TYPE="ext3"

# cp /etc/fstab /mnt/usb/etc
# vim /mnt/usb/etc/fstab
UUID="2a59bc5c-7c35-4632-9db7-90bea7d9daf1"             /                       ext3    defaults        1 1
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

c)加载网卡的配置文件
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /mnt/usb/etc/sysconfig/network-scripts/
# vim /mnt/usb/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.0.253
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet

d)完善用户的配置文件
# chroot /mnt/usb
bash-3.2#                     --找不到用户配置文件

bash-3.2# cp /etc/skel/.bash* /root    --为root用户创建配置文件
bash-3.2# exit
 
[root@instructor etc]# chroot /mnt/usb
[root@instructor /]#


5)、部署grub mbr
1)安装grub
# wget ftp://192.168.0.254:/pub/Server/grub-0.97-13.5.i386.rpm -P /tmp
# rpm -ivh --force --nodeps --root=/mnt/usb /tmp/grub-0.97-13.5.i386.rpm

2)安装mbr
# grub-install --root-directory=/mnt/usb --recheck /dev/sdb


# ls /mnt/usb/boot/grub/        --确认mbr是否已经安装好
device.map     ffs_stage1_5      minix_stage1_5     stage2           xfs_stage1_5
e2fs_stage1_5  iso9660_stage1_5  reiserfs_stage1_5  ufs2_stage1_5
fat_stage1_5   jfs_stage1_5      stage1             vstafs_stage1_5

生成grub.conf文件
# cp /boot/grub/grub.conf /mnt/usb/boot/grub/
# vim /mnt/usb/boot/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title myusb system
        root (hd0,0)
        kernel /boot/xen.gz-2.6.18-164.el5
        module /boot/vmlinuz-2.6.18-164.el5xen ro root=UUID=2a59bc5c-7c35-4632-9db7-90bea7d9daf1 quiet
        module /boot/initrd-2.6.18-164.el5xen.img
# cp /boot/grub/splash.xpm.gz /mnt/usb/boot/grub/        --复制图片

# sync        --把U盘对应的脏数据写回U盘
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值