在我们平时的工作中,偶尔需要装个系统什么的,一般会有通过网络PEX安装或者cobbler安装的,但是万一没网呢?那这时候就需要一个U盘来拯救你啦。
首先我们说一下思路:
(1)选择一个文件夹,把本机上的光盘文件全部拷贝进去(注意别丢了隐藏文件哟)
(2)用sys-config-kickstart命令制作应答文件
(3)修改isolinux下面的isolinux.cfg启动菜单配置
(4)重新创建ISO的元数据
(5)打包那个文件做成
(6)用isohybrid转换一下格式,用于U盘启动
实验过程:
1、复制文件并查看一下
[root@centos6 ~]# pwd /root [root@centos6 ~]# cp -r /misc/cd /root/app/centos6 [root@centos6 ~]# cd app/centos6/;ls -a . EFI isolinux RPM-GPG-KEY-CentOS-6 TRANS.TBL .. EULA Packages RPM-GPG-KEY-CentOS-Debug-6 .treeinfo CentOS_BuildTag GPL RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Security-6 .discinfo p_w_picpaths repodata RPM-GPG-KEY-CentOS-Testing-6 [root@centos6 centos6]#
2、在主机上用system-config-kickstart制作一个应该文件,这里的步骤和平时手动安装的内容一样,只是展现的形式不同而已,自己一项一项的选择好自己需要的配置点击左上角File里面的save保存到/root/app/centos6下即可,保存位置有图形界面可以自己选择,这里我就不一一截图了 (如果愿意深入了解kickstart的用法可以看一下一位网友的博客:http://blog.csdn.net/taiyang1987912/article/details/42176709 或者这一个网络连接: http://jingyan.baidu.com/article/5d368d1eedc8ac3f60c057e1.html )
3、修改引导菜单文件,直接保存会报错,记得用强行保存
[root@centos6 centos6]# ls centos6.cfg GPL RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Security-6 CentOS_BuildTag p_w_picpaths repodata RPM-GPG-KEY-CentOS-Testing-6 EFI isolinux RPM-GPG-KEY-CentOS-6 TRANS.TBL EULA Packages RPM-GPG-KEY-CentOS-Debug-6 [root@centos6 centos6]# vim isolinux/i initrd.img isolinux.bin isolinux.cfg [root@centos6 centos6]# vim isolinux/isolinux.cfg default vesamenu.c32 #prompt 1 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.9! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label Desktop menu label ^Automatic Desktop Install menu default kernel vmlinuz append initrd=initrd.img ks=cdrom:/centos6.cfg label man menu label ^Manual ^Install kernel vmlinuz append initrd=initrd.img label local menu label Boot from ^local drive localboot 0xffff
4、查看一下复制过来的iso文件的元数据,并删除了重新生成一次,因为之前的不能用
[root@centos6 centos6]# ls /root/app/centos6/repodata/ 1cde788f77b08a7eb3dfdba12fa384a5f0214147a717a1e2d4504368037fba90-c6-x86_64-comps.xml.gz 43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml 594889376c2452dc8178bbaed982deba4dff38a42716ac03fc84576c17b1d79b-filelists.sqlite.bz2 92299bd89d0ef9e4030e78d31399a96b41712239f032d0092f2345ba5cb01404-other.xml.gz 9f2ef5087547b18bdccc798b0cad7456047fc69ca17db69d3159b6dd84ed1c11-primary.xml.gz ad73b7fa76bb45feea7e4cdb2d896279524039545e8764ceaa515665f897a0c5-primary.sqlite.bz2 dc8a406c3cc1c5103ff2e22a1b9d3d0d09a13a6fda831ffecebdd55484bf5146-filelists.xml.gz f18d3f35ab887f27a5acc563138bd58a0c9b668e8cd79dbb32c4fc610c88e320-other.sqlite.bz2 repomd.xml TRANS.TBL [root@centos6 centos6]# cp /root/app/centos6/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml /root/ [root@centos6 centos6]# rm -rf /root/app/centos6/repodata/* [root@centos6 centos6]# ls /root/app/centos6/repodata/ [root@centos6 centos6]# createrepo -g /root/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml /root/app/centos6/ Spawning worker 0 with 3240 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@centos6 centos6]# ls /root/app/centos6/repodata/ 1cde788f77b08a7eb3dfdba12fa384a5f0214147a717a1e2d4504368037fba90-c6-x86_64-comps.xml.gz 43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml 5113e542b34891f5f6dd037f23cf2948c9014fbc852a8f7eec41f0323e2ae271-filelists.sqlite.bz2 6311d0e7a1fdcd08b425d8874500482c3910ed5ce921fa6e29dd9d5ab4418b28-filelists.xml.gz 8ddb832924451aebf1f64376f4e35bd7f3a48896b3f2b82e18346095afdaba07-primary.xml.gz b97e8f350c99ed991f87e748a98cf1c2b6fb17e8ce3fb27d578e8bb4fbb51f00-other.sqlite.bz2 e91391eb5ceb40d428c81767ea369dc3c37b10bed9d382f482054e58f4b53359-other.xml.gz fd29a4c1ae16874afec555e620fa18f3573951aacc776bbd569186ccf0d77193-primary.sqlite.bz2 repomd.xml [root@centos6 centos6]#
5、把刚刚做的软件包封装成一个iso文件
[root@centos6 centos6]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.iso /root/app/centos6 ………… 99.19% done, estimate finish Sat Jun 24 10:12:43 2017 99.45% done, estimate finish Sat Jun 24 10:12:43 2017 99.71% done, estimate finish Sat Jun 24 10:12:43 2017 99.96% done, estimate finish Sat Jun 24 10:12:43 2017 Total translation table size: 821601 Total rockridge attributes bytes: 361464 Total directory bytes: 548864 Path table size(bytes): 112 Done with: The File(s) Block(s) 1955144 Writing: Ending Padblock Start Block 1955630 Done with: Ending Padblock Block(s) 150 Max brk space used 362000 1955780 extents written (3819 MB)
6、做成的ISO文件就已经可以直接使用,如图,就可以直接安装完成。
6、需要做给U盘使用的话转换一下就ok
[root@centos6 ~]# isohybrid /root/centos6.iso isohybrid: Warning: more than 1024 cylinders: 3820 isohybrid: Not all BIOSes will be able to boot this device [root@centos6 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1000M 0 part /boot ├─sda2 8:2 0 97.7G 0 part / ├─sda3 8:3 0 48.8G 0 part /app ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 1G 0 part ├─sda6 8:6 0 2G 0 part [SWAP] └─sda7 8:7 0 203.9M 0 part sdb 8:16 1 30G 0 disk └─sdb1 8:17 1 30G 0 part [root@centos6 ~]# mount /dev/sdb1 /mnt/ mount: you must specify the filesystem type [root@centos6 ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1970416 inodes, 7872472 blocks 393623 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 241 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@centos6 ~]# dd if=/root/centos6.iso of=/dev/sdb1 7823360+0 records in 7823360+0 records out 4005560320 bytes (4.0 GB) copied, 448.366 s, 8.9 MB/s 7823360+0 records in 7823360+0 records out 4005560320 bytes (4.0 GB) copied, 448.366 s, 8.9 MB/s
附件:
制作的应答文件centos6.cfg
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation cdrom # Root password rootpw --plaintext magedu # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install text reboot # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Installation logging level logging --level=info # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part /boot --fstype="ext4" --size=500 part / --fstype="ext4" --size=50000 part swap --fstype="swap" --size=4096 part /app --fstype="ext4" --size=20000 %post useradd wang echo magedu |passwd --stdin wang rm -rf /etc/yum.repos.d/* cat > /etc/yum.repos.d/base.repo <