1. 程式人生 > >制作自定義系統iso鏡像

制作自定義系統iso鏡像

app enable file http msg 一個 BE 簡化 oot

一、制作自己的ISO啟動盤篇

在需要安裝特定系統的時候,我們使用原版的linux系統盤鏡像來安裝,需要手動操作N多步,在機器非常多的環境下,這種方式顯然不理想,這是我我們就需要制作我們特定的系統盤來簡化安裝,釋放雙手。

制作自己的ISO啟動盤其實很簡單,只需要了解iso光盤啟動需要加載的文件,然後借助工具制作就可以。

1、創建引導光盤文件

  1. 1、創建一個目錄用來存放我們的iso文件
  2. mkdir –pv /app/myiso
  3. 2、將光盤掛載到一個目錄下,方便我們復制目錄
  4. mount /dev/sr0 /mnt
  5. 3、將光盤啟動文件拷貝到我們創建的目錄內
  6. cp -r /mnt/ /app/myiso/ #整個光盤復制過去
  7. 4、創建應答文件目錄並將應答文件拷貝過去
  8. mkdir /app/myiso/isolinux/ksdir
  9. cp path/ks_file /app/myiso/isolinux/ksdir/ks-mini.cfg #應答文件的創建參見http://blog.vservices.top/myblog/?p=766 第三節
  10. 5、修改linux的啟動菜單文件,可以參見http://blog.vservices.top/myblog/?p=766 第二節
  11. vim /app/myiso/isolinux/isolinux.cfg
  12. default vesamenu.c32
  13. timeout 600
  14. display boot.msg
  15. menu clear
  16. menu background splash.png
  17. label linux
  18. menu label ^Install CentOS 7
  19. kernel vmlinuz
  20. append initrd=c7/initrd.img ks=ksdir/ks-mini.cfg
  21. label local
  22. menu default
  23. menu label Boot from ^local drive
  24. localboot 0xffff
  25. 6、刪除“/app/myiso/”下的所有 "TRANS.TBL" 文件,該文件會在生成新的iso時重新生成
  26. find /app/myiso/ -name TRANS.TBL -exec rm {} \;
  27. 7、刪除 /app/myiso/repodata下除了以‘-comps.xml‘結尾的所有文件(被排除掉的是包組數據庫,這個需要保留)
  28. grep -v ‘-comps.xml$‘ /app/myiso/repodata/ | xargs rm -rf
  29. 8、創建新的rpm包數據庫
  30. cd /app/myiso/
  31. createrepo -g repodata/38b60f66d52704cffb8696750b2b6552438c1ace283bc2cf22408b0ba0e4cbfa-c7-x86_64-comps.xml ./ #該命令依賴createrepo這個rpm包

2、生成鏡像

  1. mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/c7.iso /app/myiso/
  2. 新的鏡像保存在/root下

3、刻錄鏡像

我們生成的鏡像雖然可以引導,但是如果將其刻錄到U盤內將不能啟動,原因是:刻錄後,U盤的MBR是空的。所以準對這種情況我們需要對光盤鏡像做一下處理。

處理方法:

  1. 我們需要借助syslinux這個軟件包
  2. yum install -y syslinux
  3. 安裝好這個包後我們使用一下命令,填充MBR,這樣刻入硬盤或U盤是MBR已經做好了引導區
  4. isohybrid /root/c7.iso
  5. 做完這一步,我們就可以查看這個鏡像的前512個字節了
  6. hexdump -C -n 512 /root/c7.iso

制作自定義系統iso鏡像