• 帮助中心
  • 快速制作Linux U盘启动盘

    作者:upzxt 文章来源:u盘装系统 发布时间:2012-08-22 01:14点击:

    快速制作Linux U盘启动盘

    前些天公司一linux系统被误删除文件,进不了系统了,里面的数据很重要,为了把硬盘中的数据进行恢复,想了多个办法,当然很多办法是可行的,比如把硬盘拿下来挂在另一个linux系统上,把数据考出来;比如跳过控制台进入系统进行考数据。后来我就想制作一个U盘启动的linux系统,以后做些东西就比较方便了,所以就研究了两个小时,下面是制作的过程,以供大家分享。在进行mknod时,着实看了不少的英语文档,后来终于明白了。
     
    一.对U盘进行处理
     
    1.分区:(插上U盘)
     
    # fdisk /dev/sdb
     
    d Enter 删除原有分区
     
    n Enter 新建一个主分区
     
    w Enter 保存设置
     
    # partprobe /dev/sdb 刷新U盘
     
    2.设定U盘分区为活动分区
     
    # fdisk /dev/sdb
     
    a Enter 设定为活动分区
     
    1 Enter 选择分区
     
    3.对硬盘分区进行格式化,格式化成ext3格式
     
    # mkfs.ext3 /dev/sdb1
     
    二.装filesystem包 (目的:生成根下的root,usr,var ...等目录)
     
    1.配置好yum
     
    2.加载U盘到/net下
     
    # mount /dev/sdb1 /net
     
    3.安装
     
    # yum -y install --installrot=/net filesystem
     
    安装完成后,可查看/net下生成了多个目录
     
    三.加载系统启动项
     
    1.# cp /boot/vmlinuz-2.6.18-128.el5 /net/boot/
     
    2.生成initrd.img `uname -r`为取系统版本号
     
    # mkinitrd --with=usb-storage /net/boot/initrd-usb.img `uname -r`
     
    3.查看/net/boot/下是否有vmlinuz和initrd
     
    四.制作boot loader(grub)
     
    1.# yum -y install --installroot=/net grub
     
    2.grub.conf不成自动生成,要手工创建

     # cp /boot/grub/grub.conf /net/boot/grub/grub.conf 并作修改
     
    # cat /net/boot/grub.conf
     
    default = 0
     
    timeout = 5
     
    title redhat-usb-linux
     
    root(hd0,0)
     
    kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sdb1 init=/dev/bash
     
    initrd /boot/initrd-usb.img
     
    此处填写的内容要与/net/boot/grub/下的文件名一致
     
    五.安装命令库文件
     
    # yum -y install --installroot=/net bash coreutils pam setup vim-enhanced vim-minimal util-
     
    linux net-tools SysVinit passwd shadow-utils authconfig
     
    可通过rpm -qf /bin/mount 查看包名
     
    此时chroot /net下可使用刚才安装的命令了
     
    六.创建磁盘分区
     
    # mknod /net/dev/sdb b 8 16
     
    # mknod /net/dev/sdb1 b 8 17
     
    b表示块设备,8为主设备号,16、17为次设备号
     
    --------------------------
     
    | 有关设备号的解释:
     
    | 1.对于一块SCSI/SATA硬盘(格式为sd*),主设备号为8,
     
    | 第一块硬盘的次设备号为0-15,第二块硬盘的次设
     
    | 备号为16-31,依次类推。因为对于硬盘来说,主分
     
    | 区最多为4个,可以3个主分区1个扩展分区,扩展分
     
    | 区仍然可以再分区,但是分区的总数最多为16个,所
     
    | 以每一块硬盘的次设备号为16个(0-15,16-31)。
     
    | 2.对于一块IDE硬盘(格式为hd*),主设备号为3,次设
     
    | 备号第一块为0-63,第二块为64-127。
     
    | 3.# ls -l /dev/sd*
     
    | brw-r----- 1 root disk 8, 0 10-16 14:53 /dev/sda
     
    | brw-r----- 1 root disk 8, 1 10-16 14:54 /dev/sda1
     
    | brw-r----- 1 root disk 8, 2 10-16 14:53 /dev/sda2
     
    | brw-r----- 1 root disk 8, 3 10-16 14:54 /dev/sda3
     
    | brw-r----- 1 root disk 8, 16 10-16 15:50 /dev/sdb
     
    | brw-r----- 1 root disk 8, 17 10-16 15:50 /dev/sdb1
     
    | brw-r----- 1 root disk 8, 32 10-16 15:50 /dev/sdc
     
    | brw-r----- 1 root disk 8, 36 10-16 15:50 /dev/sdc4
     
    | 以上是我一台主机上插了1个硬盘,两个U盘的显示情况,我
     
    | 们可以看到设备号的显示情况。
     
    | 4.在linux中一切皆文件,硬件也是通过文件体现出来的,所
     
    | 有硬件设备都在/dev/有所显示。
     
    | 5.更具体的设备号研究可以查看下面的文件。
     
    | # yum install kernel-doc
     
    | # /usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt
     
    ---------------------------
     
    七.
     
    1.创建mtab
     
    # cat /net/etc/mtab
     
    /dev/sdb1 / ext3 rw 0 0
     
    2.创建fstab
     
    # cat /net/etc/fstab
     
    /dev/sdb1 / ext3 default 1 1
     
    八.安装grub
     
    # chroot /net
     
    # grub-install /dev/sdb1
     
    注:
     
    1.如果创建硬盘分区的时候没有配置正确,在第八步会报错:
     
    the file /boot/grub/stage1 not read correctly
     
    2.在用U盘启动后,进入到U盘中的系统,此时我们可以用已经
     
    安装过的命令集,但是此时的文件系统是只读的,我们不能vim,
     
    mount等的操作,此时必须用下面这个命令,进行重新读写挂载:
     
    # mount -o remount,rw /
     
    重挂载后,就可以了。

     

    U盘装系统


    (责任编辑:www.upzxt.com)