制作U盘系统的主要作用是拯救主机系统,当主机中的系统崩溃了,我们可以用U盘系统来启动,然后主机中的分区挂载过来进行里面的配置文件的修改,从而达到拯救系统的作用。
制作U盘系统的具体步骤可分为以下几步:
1:分区并用mkfs.ext3制作文件系统
2:安装filesystem-2.4.0-2整个根文件系统的目录结构
3:安装grub,并进行grub配置文件的修改
4:修改INIT
5:修改bash
下面进行具体的操作:
我们插上U盘,然后对其进行分区和格式化,并将其挂载到/net目录下
[root@stu15 /]# fdisk /dev/sda
[root@stu15 /]# partprobe /dev/sda
[root@stu15 /]# ls /dev/sda1
/dev/sda1
[root@stu15 /]# mkfs.ext3 /dev/sda1
[root@stu15 /]# mount -t ext3 /dev/sda1 /net
接下来修改yum配置文件,此目的是为了后续的安装软件的方便,进行如下修改:
[root@stu15 yum.repos.d]# pwd
/etc/yum.repos.d
切换到/etc/yum.repos.d目录下
[root@stu15 yum.repos.d]# ls
rhel-debuginfo.repo
[root@stu15 yum.repos.d]# vim rhel-debuginfo.repo
[root@stu15 yum.repos.d]# cat rhel-debuginfo.repo
[RHCA]
baseurl=file:///mnt/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
同时我们也得修改/etc/yum.conf配置文件,将:
[RHCA]
baseurl=file:///mnt/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
写到尾部
[root@stu15 yum.repos.d]# yum clean all
重新更行以下yum的缓存
接下来我们进行U盘系统制作的第二个步骤:
[root@stu15 yum.repos.d]# yum -y install --installroot=/net filesystem
或者用这样的命令:rpm -ivh --root=/net filesystem
[root@stu15 yum.repos.d]# ls /net
bin home mnt root sys
boot lib net sbin tmp
dev lost+found opt selinux usr
etc media proc srv var
前面修改yum的配置文件就是为了后续工作!yum安装解决了RPM包的依赖问题!可以快速安装!
如此filesystem安装成功,目录结构也有了!接下来进行第三步:
安装grub,并修改grub配置文件/boot/grub,vmlinuz可以使用系统现有的,而initrd额外制作 ,添加usb-storage(U盘存储驱动),具体步骤:
[root@stu15 yum.repos.d]# yum -y install --installroot=/net grub
[root@stu15 yum.repos.d]# ls /net/sbin/grub*
/net/sbin/grub
/net/sbin/grub-install
/net/sbin/grub-md5-crypt
/net/sbin/grub-terminfo
以上内容说明GRUB安装成功!
[root@stu15 boot]# cp /boot/vmlinuz-2.6.18-128.el5 /net/boot/
[root@stu15 boot]# mkinitrd --with=usb-storage --with=sd_mod --with=scsi_mod --with=uhci_hcd --with=ehci_hcd --with=ohci_hcd /net/boot/initrd-2.6.18-usb.img `uname -r`
initrd需要修改一些存储驱动,如上!
[root@tea boot]# ls /net/boot/
grub
initrd-2.6.18-usb.img
vmlinuz-2.6.18-128.el5
在/net/boot/grub下面建立grub.conf文件,并输入如下内容:
[root@stu15 grub]# cat /net/boot/grub/grub.conf
default=0
timeout=10
title RHEL5U3 usb
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1
initrd /boot/initrd-2.6.18-usb.img
接下来处理INIT相关文件:
/sbin/init /etc/inittab 该两个文件最好不要直接从主机中copy到U盘系统中,因为不同的主机由不同的环境变量,再次我们选择往U盘里面进行安装:
[root@stu15 /]# rpm -qf /sbin/init
SysVinit-2.86-15.el5
[root@stu15 /]# rpm -qf /etc/inittab
initscripts-8.45.25-1.el5
[root@stu15 grub]# yum -y install --installroot=/net SysVinit initscripts
第四步:处理登录bash问题,具体步骤如下:
相关可执行文件有:/bin /sbin /usr/bin /usr/sbin
相关库文件有:/lib /usr/lib
[root@stu15]#yum -y install --installroot=/net bash setup util-linux shadow-util vim-enhanced coreutils rpm
[root@stu15]#cp -r /lib/modules/2.6.18-128.el5/ /net/lib/modules/
[root@stu15]#cp /etc/passwd /etc/shadow /net/etc/
cp:是否覆盖“/net/etc/passwd”? y
[root@stu15 yum.repos.d]# chroot /net
bash-3.2# ls --color=tty
bin home mnt root sys
boot lib net sbin tmp
dev lost+found opt selinux usr
etc media proc srv var
bash-3.2# grub-install /dev/sdb
bash-3.2# ls /dev/sdb
ls: /dev/sdb: 没有那个文件或目录
bash-3.2# mknod /dev/sdb b 8 16
bash-3.2# mknod /dev/sdb1 b 8 17
bash-3.2# grub-install /dev/sdb
Probing devices to guess BIOS drives. This may take a long time.
df: 警告:无法读取已挂上的文件系统的目录: 没有那个文件或目录
Could not find device for
bash-3.2# vim /etc/mtab
bash-3.2# cat /etc/mtab
/dev/sdb1 / ext3 rw 0 0
bash-3.2# grub-install /dev/sdb
Could not find device for /dev/mapper/*
Could not find device for /dev/mapper/*
Could not find device for /dev/mapper/*
Installation finished. No error reported.
This is the contents of the device map /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/sdb
bash-3.2#
bash-3.2# cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/sdb
bash-3.2# cat grub.conf
default=0
timeout=10
title RHEL5U3 usb
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sda1
initrd /boot/initrd-2.6.18-usb.img
bash-3.2#
bash-3.2# passwd root
bash: passwd: command not found
bash-3.2# exit
exit
[root@tea boot]# rpm -qf /usr/bin/passwd
passwd-0.73-1
[root@stu15 boot]# yum -y install --instalroot=/net passwd
bash-3.2# useradd pg
bash-3.2# passwd pg
Changing password for user pg.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
bash-3.2# cat /etc/fstab
/dev/sdb1 / ext3 defaults 0 0
bash-3.2# sync
至此U盘系统就已经完全成功了!然后重新启动,修改一下BIOS从U盘启动,即可!!
阅读(1300) | 评论(2) | 转发(0) |