USB引导盘

以U盘在系统中为/dev/sda为例     可以fdisk –l去查看
Step1:对U盘的前期工作(分区、格式化、挂载)
      dd  if=/dev/zero  of=/dev/sda  bs=1024  count=1   #bs在这为1024,其实512就够用了
      fdisk  /dev/sda   #对U盘的分区,分区时可以用-l   -a参数。分成一个主分区就可以,对这个分区标记可引导(用-a参数)
      partprobe  /dev/sda    #扫描U盘,加载配置文件
      mke2fs  -j  /dev/sda1  #格式化分区,-j为格式成ext3形式
      mount  /dev/sda1  /mnt   #挂载使用,挂到/mnt下
下面就可以使用了U盘来做启动盘了
Step2:找到安装树,进入安装源文件的Server目录,找到filesystem-xx.xx.xx.rpm安装包filesystem这个包是linux 的/下目录的生成文件
      cp  filesystem这个安装包到/mnt下
      rpm  –ivh  --nodeps  --force  --root=/mn[size=large][/size]t filesystem-xx.xx.xx.rpm
#安装filesystem到/mnt下(U盘里)
      cp  /bin/*  /mnt/bin  #拷贝/bin下的命令到U盘下(系统一般命令)
      cp  /sbin/*  /mnt/sbin   #拷贝/sbin下的命令到U盘下(管理员命令)
      cp  -rf  /lib/*  /mnt/lib/  #拷贝相应的库对U盘
step3: 找到安装树,进入安装源文件的Server目录,找到grub-0.97.xx.xx.rpm安装包
      rpm  -ivh  --nodpes  --force  --noscript  --root=/mnt  grub-0.97.xx.xx.rpm
                          #安装grub到/mnt下(U盘里),其中—noscript这个参数为不出现脚本报错
      cp  -rf  /boot/*  /mnt/boot/   #grub装好后会有grub、vmlinuz-2.6.xx.xx、system.map、symvers、lost+found这些文件
      cp  /usr/bin/*  /mnt/usr/bin/   #拷贝/usr/bin下的命令到/mnt/usr/bin下,可以不拷贝
      cp  /usr/sbin/*  /mnt/usr/sbin/  #拷贝/usr/sbin下的命令到/mnt/usr/sbin下,可以不拷贝  
下面就是编辑几个配置文件:
Step4: vim  /mnt/boot/grub/device.map    #把这个文件改成U盘
       ┗(hd0)           /dev/sda        #/dev/sda为你的U盘,就是fdisk  -l查看到的
     然后wq
Step5: vim  /mnt/boot/grub/grub.conf     #修改启动的配置文件
      ┗Default=0
        Timeout=5
        Title Red Hat USB linux
        root (hd0,0)         
        kernel  /boot/vmlinuz-2.6.xx.xx  ro  root=/dev/sda1  init=/bin/bash
            #这个/boot/vmlinuz是你U盘上的;root=/dev/sda1指你的U盘(fdisk –l
查看到的) 启动的位置;init指登陆后出现的shell
        Initrd  /boot/initrd.img
第五步这样改就可以了,记住一定要改成自己U盘的,这个是根据自己机器的配置来的,这一步对启动要有一定的理解才行.
在这我们涉及到stage1和stage2这两个文件,其中stage1是做为一个模板嵌到mbr中的,mbr加stage1,stage1加stage2这样系统才能启动.
Step6: cp  /etc/fstab  /mnt/etc/fstab 
     cp  /etc/mtab  /mnt/etc/mtab   #拷贝这两个文件到相应的目录然后对其编辑
     vim  /mnt/etc/fstab
      ┗/dev/sda1   /   ext3  default   1  1
                    #我们改成这样就ok了,只写这一行就行,把其他的都删掉
     然后Wq
     Vim  /mnt/etc/mtab
      ┗/dev/sda1   /   ext3  rw      1  1
       #我们改成这样就ok了,只写这一行,照我这样写
说明一下/dev/sda1这是根据自己的机器情况来的(强调了多次)可以去fdisk –l去查看
这四个文件我们改好了,下面我们去U盘
Step7: chroot  /mnt   # shell切换根(可以man chroot看下)
        ┗mknod  /dev/sda  b  8  0       #这个b为block 8为主设备号0为从设备号
          ┗mknod  /dev/sda1  b  8  0
          ┗grub-install  /dev/sda
          ┗exit
这几步是在/mnt下进行的,我们已经切换在根下了.下面我们手动建initrd文件(linux的驱动,我们得让它支持Usb才能做好U盘引导盘,所以我们要加上Usb的驱动)
Step8: mkinitrd  --with=sd-mod  --with=scsi-mod  --with=uhci_hcd  --with=ehci_hcd  --with=usb-storage  /mnt/boot/initrd.img  `uname  -r`
这条命令就可以建好initrd了,我们看下这五个参数,这五个参数的顺序不能变,在el4上我们要加上这五个,但是在el5上我们只加最后这一个就可以了,这要看你的机器是哪个版本的
Step9:sync   #同步 (把数据刷新一下)
Step10:umount  /mnt    #卸载U盘
Step11:reboot    #重启机器

以上就是我们Usb引导盘的制做了,在使用进我们可以加上环境变量就可以使用命令了
exports  PATH=”$PATH:/sbin:/usr/bin:/usr/sbin”
备注:我们可以分析下initrd.img文件 
      cp /mnt/boot/initrd.img  .
      file  initrd.img
      gunzip  initrd.img  initrd/initrd.img
      cpio  -iv  <  initrd.img

================================================================================

USB引导盘制作


简介:目标:通过现有LINUX系统制作出USB引导盘,达到对系统起动更深一层理解的目的。准备:rpm包两个:grub和filesystem, 2G U盘 制作步骤: 1、清空U盘MBR引导代码:(本机USB设备认作sdb) dd if=/dev/zero of=/dev/sdb bs=102 ...

目标:通过现有LINUX系统制作出USB引导盘,达到对系统起动更深一层理解的目的。
准备:rpm包两个:grub和filesystem, 2G U盘

制作步骤:
1、清空U盘MBR引导代码:(本机USB设备认作sdb)
       dd if=/dev/zero of=/dev/sdb bs=1024 count=1

2、格式化成ext3格式
       fdisk /dev/sdb        #重新分区U盘并标记为可引导
       partprobe /dev/sdb  #使分区生效
       mke2fs -j /dev/sdb1       #格式化成ext3文件系统
       mount /dev/sdb1 /mnt    #挂载到/mnt目录下

3、构建系统安装树(文件系统)
       rpm -ivh --force --nodeps --root=/mnt filesystem-2.4.0-1.rpm

       将本地系统起动必须的文件复制到U盘上:
       cp /bin/* /mnt/bin/
       cp /sbin/* /mnt/sbin/
       cp -rf /lib/* /mnt/lib/

4、安装grub(grub可执行文件)
       rpm -ivh --force --nodeps --root=/mnt grub-0.97-13.rpm
     
5、  cp /usr/bin/* /mnt/usr/bin/
       cp /usr/bin/* /mnt/usr/sbin/
       #cp /usr/lib/* /mnt/usr/lib/     #这个目录可以不拷,只是一些库用不了,但基本的已够了(800M左右)

       cp -rf /boot/* /mnt/boot/
              #/mnt/boot/目录下必须的文件: ./grub  vmlinuz-2.6.23  config-2.6.18-53.el5
              # 其他的可以保留
       #修改/mnt/boot/grub目录下的相应文件内容:
              /mnt/boot/grub/device.map
              内容:(hd0)     /dev/sdb
              /mnt/boot/grub/grub.conf
              内容:    default=0
                     timeout=5
                     title USB Linux Server (2.6.23)
                      root (hd0,10)
                     #起动进入/bin/bash
                      kernel /boot/vmlinuz-2.6.23 ro root=/dev/sdb1 rhgb quiet init=/bin/bash
                      initrd /initrd.img   #一会新建,名字先定义好

6、复制fstab和mtab到U盘相应位置,修改其内容
       cp /etc/fstab /mnt/etc/fstab
              内容:/dev/sdb1    /    ext3   defaults   1 1
       cp /etc/mtab /mnt/etc/mtab
              内容:/dev/sdb1    /    ext3   rw   0 0

7、切换到U盘系统下,安装grub
       chroot /mnt
              mkdir /dev/sdb b 8 16
              mkdir /dev/sdb1 b 8 17
              grub-install /dev/sdb      #grub安装
       exit

8、建立initrd.img
       #在EL5里只需usb_storage,在EL4里还要有sd-mod,scsi-mod,uhci_hcd,ehci_hcd
       mkinitrd --with=usb_storage /mnt/boot/initrd.img `unam -r`
       #注意顺序不能错

9、sync  #同步下数据

10、umount /mnt

11、重启,用USB引导测试。

你可能感兴趣的:(linux,配置管理,脚本,vim,bash)