วิธีสร้างอิมเมจ ISO แบบกำหนดเองใน CentOS


20

ฉันกำลังพยายามสร้างอิมเมจ ISO แบบกำหนดเองซึ่งจะติดตั้ง RPMS ขั้นต่ำที่จำเป็นพร้อมกับ RPM ที่เขียนขึ้นเองของแอพของฉัน และยังต้องการที่จะทำตามขั้นตอนการติดตั้งโพสต์เช่นการกำหนดค่าแอพและการกำหนดค่า VPN ของฉันเป็นต้น

ฉันเห็นลิงก์ใน google แต่พวกเขากำลังชี้ไปที่การสร้าง repo และ ISO จากดิสก์ที่ติดตั้งหรืออิมเมจ ISO

ขอบคุณ Ramesh


คุณยังสามารถใช้ redhat kickstart สำหรับงานนี้มันเป็นทางเลือกที่ง่ายและยืดหยุ่นมากขึ้นข้อมูลเพิ่มเติมที่นี่access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
fyarci

คำตอบ:


45
  1. สร้างไดเรกทอรีเพื่อเมาต์ซอร์สของคุณ

    mkdir /tmp/bootiso
    
  2. วนรอบแหล่ง ISO ที่คุณกำลังปรับเปลี่ยน (ดาวน์โหลดจาก Red Hat / CentOS)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. สร้างไดเรกทอรีทำงานสำหรับสื่อที่กำหนดเองของคุณ

    mkdir /tmp/bootisoks
    
  4. คัดลอกสื่อต้นฉบับไปยังไดเรกทอรีทำงาน

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. ถอนติดตั้ง ISO ต้นทางและลบไดเร็กทอรี

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. เปลี่ยนการอนุญาตในไดเรกทอรีทำงาน

    chmod -R u+w /tmp/bootisoks
    
  7. คัดลอกสคริปต์ Kickstart ของคุณซึ่งได้รับการแก้ไขสำหรับแพ็คเกจและ%postไปยังไดเรกทอรีทำงาน

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. คัดลอก RPM เพิ่มเติมใด ๆ ไปยังโครงสร้างไดเรกทอรีและอัพเดตข้อมูลเมตา

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. เพิ่ม kickstart เพื่อบูตตัวเลือก

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. สร้างไฟล์ ISO ใหม่

    cd /tmp/bootisoks && \ 
    mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
    
  11. (ไม่บังคับ) ใช้isohybridหากคุณต้องการddไฟล์ ISO เป็นคีย์ USB ที่สามารถบู๊ตได้

    isohybrid /tmp/boot.iso
    
  12. เพิ่มการตรวจสอบ MD5 (เพื่ออนุญาตการทดสอบสื่อ)

    implantisomd5 /tmp/boot.iso
    

หากคุณต้องการความช่วยเหลือเพิ่มเติมในการสร้างสคริปต์Kickstartฉันขอแนะนำให้เริ่มต้นด้วยเอกสารทางการของ Red Hat


1
เป็นไปได้หรือไม่ว่าคุณพลาดหรือทำขั้นตอนที่ 4 ไม่เรียบร้อย
Aaron Copley

3
@AaronCopley ใช่คุณอาจพูดถูก ฉันพบสิ่งนี้ด้วย: github.com/joyent/mi-centos-7ซึ่งช่วยฉัน
sivann

1
ในขั้นตอนที่ 9 ฉันเชื่อว่าคุณต้องให้พารามิเตอร์สุดท้าย (จุด) เพื่อระบุไดเรกทอรีปัจจุบัน พฤติกรรมเริ่มต้นที่แปลก แต่ไม่มี mkisofs สร้างไฟล์ iso ซึ่งมีเฉพาะไฟล์จากไดเรกทอรีบนสุดและไม่มีไดเรกทอรีย่อยและอื่น ๆ
hshib

2
ฉันยังมีปัญหากับขั้นตอนที่ 4 ด้วยการใช้คำสั่ง "cp" มันไม่ได้คัดลอกไฟล์ที่ซ่อน. docinfo และ. tree หากไม่มี iso ที่สร้างขึ้นจะล้มเหลวในระหว่างการติดตั้งบ่นว่า "ไม่พบซีดี / รอม"
hshib

1
คุณสามารถคัดลอกทุกอย่างด้วยคำสั่งเดียวด้วย - "cp -r / tmp / bootiso /. / tmp / bootisoks /" (นี่เป็นเรื่องยุ่งยากเล็กน้อย - โน้ตเดี่ยวหลังจาก / tmp / bootiso /)
hshib
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.