คำแนะนำในการปรับแต่ง Ubuntu Installer


9

ฉันได้ลองอ่านคู่มือสำหรับการคาดการณ์ล่วงหน้าและการปรับแต่งแล้ว แต่ฉันไม่เข้าใจว่าจะแก้ไขตัวเลือกใดและที่ไหน ฉันสามารถเรียนรู้จากตัวอย่างที่ใช้งานได้จริงอย่างสะดวกสบายเท่านั้นซึ่งฉันถามคำถามนี้

ฉันกำลังมองหาวิธีคิดล่วงหน้าและปรับแต่งโซลูชันเพื่อทำงานเฉพาะบางอย่าง:

  • สมบูรณ์เขียนแพคเกจติดตั้งโดยค่าเริ่มต้นมากเช่นการติดตั้งน้อยที่สุดและมีธงชาติ--no-install-recommendsapt-get
  • เพิ่มแอปพลิเคชั่นที่เป็นกรรมสิทธิ์เพียงเล็กน้อยในรายการติดตั้งเริ่มต้น
  • ติดตั้งและเมานต์ไดรเวอร์ที่เป็นกรรมสิทธิ์โดยอัตโนมัติในการติดตั้งและเซสชันสด
  • แก้ไขไฟล์กำหนดค่าเริ่มต้นสำหรับแอปพลิเคชันที่ติดตั้งโดยค่าเริ่มต้น
  • ระบุพาร์ติชันพร้อมกับการอนุญาต
  • สระว่ายน้ำปรับเปลี่ยนแพคเกจในสื่อการติดตั้ง (CD / DVD / USB) ควรใช้เครื่องมือบรรทัดคำสั่งคล้ายกับและapt-getaptitude

ใครช่วยกรุณาบอกวิธีกำหนดค่าตัวเลือกล่วงหน้าให้ทำเฉพาะด้านบนเท่านั้น?

NBฉันไม่เข้าใจส่วน GPG หลังจากเพิ่ม / ลบแพ็คเกจในกลุ่ม

ป.ล.ประเด็นที่สามมีความสำคัญเป็นพิเศษ


"ตัวติดตั้ง Ubuntu" จะอ้างถึงตัวติดตั้งกราฟิก (เฉพาะ) หรือตัวติดตั้งอื่น (debian-installer) หรือไม่?
komputes

@komputes จะทำเช่นนั้น
Oxwivi

คำตอบ:


6

สำหรับ preseed อ้างอิงคุณอาจต้องการอ้างถึง installation-guide-i386 ซึ่งมี preseed ตัวอย่างต่อไปนี้:

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • เขียนแพคเกจที่ติดตั้งใหม่โดยสมบูรณ์เหมือนการติดตั้งขั้นต่ำ
  • เพิ่มแอปพลิเคชั่นที่เป็นกรรมสิทธิ์เพียงเล็กน้อยในรายการติดตั้งเริ่มต้น

เพื่อให้รายการแพคเกจที่คุณต้องการติดตั้งคุณอาจต้องการค้นหาบรรทัดต่อไปนี้:

  tasksel tasksel/first   multiselect ubuntu-desktop

ตำแหน่งที่สามารถเปลี่ยน "ubuntu-desktop" เป็นจำนวนแพ็คเกจหรือแพ็คเกจเมตาโดยพลการ

  • ติดตั้งและเมานต์ไดรเวอร์ที่เป็นกรรมสิทธิ์โดยอัตโนมัติในการติดตั้งและเซสชันสด

อื่น ๆ ที่ระบุแพคเกจที่ต้องการ (สำหรับไดรเวอร์ที่เป็นกรรมสิทธิ์) ฉันไม่แน่ใจว่าจะสำเร็จได้อย่างไร ในฐานะที่เป็นข้อความด้านข้างคุณ "เมาท์" พาร์ติชันคุณ "โหลด" เคอร์เนลโมดูล / ไดรเวอร์

  • แก้ไขไฟล์กำหนดค่าเริ่มต้นสำหรับแอปพลิเคชันที่ติดตั้งโดยค่าเริ่มต้น

ในการทำการเปลี่ยนแปลงสคริปต์เหล่านั้นคุณอาจต้องการตรวจสอบ:

  d-i preseed/late_command string ...

โดยที่ "... " สามารถแทนที่ด้วยคำสั่งโดยพลการเช่น sed -i เป็นต้น

  • ระบุพาร์ติชันพร้อมกับการอนุญาต

มีส่วนของพาร์ติชันในตัวอย่างที่กล่าวถึงข้างต้น

แพร่หลายด้วย preseed

แคสเปอร์รองรับ preseed และ ubiquity สามารถมีค่าได้มากมาย นี่คือตัวแปรบางตัวที่สามารถคาดเดาได้เกี่ยวข้องกับความแพร่หลาย:

ubiquity countrychooser/shortlist select US
ubiquity languagechooser/language-name select English
ubiquity localechooser/supported-locales multiselect en_US.UTF-8
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true
ubiquity ubiquity/poweroff boolean true
ubiquity ubiquity/success_command string ...

โดยที่ "... " จะมีเช่นเดียวกับ Late_command ที่กล่าวถึงข้างต้น success_command ถูกอ่านโดย ubiquity และล่าช้า _command โดย di


ไม่มีวิธีใดในการเปลี่ยนไฟล์การกำหนดค่าไว้ล่วงหน้า? ฉันจะป้องกันการติดตั้งแพ็คเกจที่แนะนำได้อย่างไร ฉันจะเพิ่มแพ็กเกจที่เป็นกรรมสิทธิ์สำหรับการติดตั้งออฟไลน์ได้อย่างไร
Oxwivi

เสียงเหมือนที่คุณต้องการสร้างภาพที่กำหนดเองตามที่อธิบายไว้ที่นี่: help.ubuntu.com/community/LiveCDCustomization ภาพยังสามารถมีไฟล์ preseed ที่คุณสามารถเปลี่ยนไฟล์การกำหนดค่าตามที่อธิบายไว้ก่อนหน้านี้ อีกวิธีคือคุณสามารถสร้างแพ็คเกจของคุณเองสำหรับการปรับแต่งบางอย่าง
komputes

ตกลงลืมการเปลี่ยนแปลงการกำหนดค่าฉันต้องกำหนดคำแนะนำซีดีเองเพื่อรวมแพ็คเกจที่ไม่มีอยู่ในดิสก์เป็นค่าเริ่มต้นหรือไม่
Oxwivi

ฉันเมานต์รูปภาพคัดลอกเนื้อหาไปยังไดเรกทอรีพารามิเตอร์ Ubiquity ที่แก้ไขแล้ว ฉันจะจบมันได้อย่างไร
Oxwivi

หากต้องการจบ / สร้างอิมเมจ ISO ให้ทำตามการพูดคุยเรื่อง "การสร้างอิมเมจซีดี" ที่นี่: help.ubuntu.com/community/LiveCDCustomization
komputes

3

ต่อไปนี้สร้างอิมเมจสำหรับบูตที่ปรับเปลี่ยนแล้ว เขียนลงในซีดีหรือใส่ ISO ลงใน VM เพื่อทดสอบ คุณจะต้องcpioและgenisoimage(นั่นคือชื่อของแพ็คเกจและไฟล์ปฏิบัติการ)

ต่อไปนี้อยู่ในรูปแบบของ Makefile แต่สามารถป้อนแบบโต้ตอบได้ ${IN_ISO}อ้างถึงอิมเมจ ISO ดั้งเดิม (ฉันใช้-alternativeเวอร์ชันและฉันขอแนะนำให้คุณทำเช่นเดียวกัน) ${OUT_ISO}กับชื่อ ISO ที่ต้องการ

# Extract the ISO image to mount/ and copy it to cdroot/
cdroot:
    mkdir -p mount
    sudo mount -o loop ${IN_ISO} mount
    mkdir cdroot
    cd cdroot && tar cf - ../mount --transform 's,^mount/,,' | tar xf -
    sudo umount mount && rm -r mount
    chmod -R a+rw cdroot

# Copy new files to the disk. Content of those files is posted below
prepare: cdroot
    cp isolinux.cfg cdroot/isolinux/isolinux.cfg
    test -e ./initrd.orig.gz || cp cdroot/install/initrd.gz ./initrd.orig.gz
    mkdir -p initrd
    cd initrd && gunzip <../initrd.orig.gz | sudo cpio -i && cd ..
    cp preseed.cfg initrd/preseed.cfg
    cd initrd && find . | cpio -o --format=newc | gzip -9 > ../cdroot/install/initrd.gz && cd ..
    sudo rm -rf initrd

# Create the ISO image. Make sure to use extensions for lower-case filenames    
iso: cdroot prepare
    genisoimage -o ${OUT_ISO} \
        -force-rr -J \
        -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        cdroot

คุณต้องการไฟล์เพิ่มเติม:

isolinux.cfgกำหนดค่าบูตโหลดเดอร์ คุณต้องการให้มันเพิ่งบู๊ตและผ่านกระบวนการติดตั้งโดยอัตโนมัติ ควรมีลักษณะเช่นนี้:

default install
label install
  menu label ^Install my custom Ubuntu
  kernel /install/vmlinuz
  append auto initrd=/install/initrd.gz --
# Leave 2 seconds to abort or debug
prompt 1
timeout 20

นั่นคือการเตรียมการทั้งหมดที่เราต้องการก่อนกำหนดค่าการติดตั้งจริง ดาวน์โหลดตัวอย่าง preseedและตั้งชื่อ preseed.cfg อ่านและแก้ไขสิ่งที่คุณต้องการ ตัวเลือกที่สำคัญคือ:

# Locale
d-i debian-installer/locale string en_US
d-i time/zone string US/Eastern

# Partitioning. The following settings WILL OVERWRITE ANYTHING
# Don't insert the CD into your boss' computer ...
d-i partman-auto/method string regular
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# To create a normal user account.
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/allow-password-weak boolean true

# Package selection. Don't include ubuntu-desktop to significantly reduce the content
tasksel tasksel/first multiselect standard

#d-i preseed/early_command string driver installation commands (stuff needed to boot)
#d-i preseed/late_command string driver installation commands, custom software, etc.

แต่ฉันขอแนะนำให้คุณอย่าใช้ตัวอย่างข้างต้น แต่ดาวน์โหลดตัวอย่างของ Ubuntu และกำหนดค่าตามความต้องการของคุณด้วยlate_commandคุณสามารถทำอะไรก็ได้จาก shell รวมถึงการดาวน์โหลดและการเรียกใช้สคริปต์ที่ติดตั้งและกำหนดค่าซอฟต์แวร์ที่คุณกำหนดเอง ตัวอย่างเช่นใช้สิ่งนี้เป็นlate_command:

d-i preseed/late_command string in-target sh -c 'wget https://example.com/my/install.sh && sh install.sh'

หรือคุณสามารถวางinstall.shใน initrd ด้านบนและดำเนินการโดยตรง เนื้อหาอาจมีลักษณะเช่นนี้:

#!/bin/sh
aptitude install -y x11-apps any-package-you-want-installed
wget http://proprietary.com/drivers/for/ubuntu.tar.gz -O- | tar xf - && sh drivers/instal.sh

มันขึ้นอยู่กับว่ารูทีนการติดตั้งไดรเวอร์ของคุณทำงานอย่างไร


เช่นเดียวกับที่ฉันพูดในคำถามฉันต้องการคำแนะนำเกี่ยวกับงานที่ฉันระบุไว้อย่างแน่นอน ฉันจะเขียนแพ็คเกจที่กำลังจะติดตั้งใหม่ได้อย่างไร สิ่งที่เกี่ยวกับการติดตั้งอัตโนมัติของไดรเวอร์ที่เป็นกรรมสิทธิ์?
Oxwivi

@Oxwivi late_commandเขียนสคริปต์ที่ติดตั้งทุกสิ่งที่คุณต้องการและดาวน์โหลดและดำเนินการด้วย Package selectionเป็นส่วนที่คุณสามารถใช้เพื่อติดตั้งแพ็คเกจของคุณเอง แต่คุณสามารถทำได้ในสคริปต์
phihag

1
@Oxwivi คุณสามารถติดตั้ง jockey และต่อมาลบออกด้วยaptitude purge jockeyสคริปต์ ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "วิธีทั่วไปในการติดตั้งไดรเวอร์ที่เป็นกรรมสิทธิ์ทุกประเภท" นี่เป็นวิธีทั่วไปในการติดตั้งไดรเวอร์ที่ถูก จำกัด เพียงแค่ใส่แพ็คเกจของไดรเวอร์ที่คุณกำลังติดตั้งลงใน taskel หรือหลังจากนั้นaptitude install -yในสคริปต์และมันจะทำงาน หากคุณต้องการให้ภาพของคุณทำงานกับหลาย ๆ เครื่องคุณอาจต้องหาวิธีที่จะถามผู้จัดรายการสำหรับไดรเวอร์ที่เกี่ยวข้องทั้งหมด ...
phihag

1
@Ocwivi ... อย่างไรก็ตามการติดตั้งไดรเวอร์ที่เป็นกรรมสิทธิ์ทั้งหมดที่มีอยู่นั้นเป็นความคิดที่ไม่ดี: ไดรเวอร์ที่เป็นกรรมสิทธิ์มักจะเก่าไม่รองรับและต้องการการกำหนดค่าเพิ่มเติมที่ไม่ได้มาตรฐาน นอกจากนี้คุณต้องตรวจสอบให้แน่ใจว่าคุณได้รับอนุญาตอย่างถูกต้องตามกฎหมายในการแจกจ่ายไดรเวอร์ที่ไม่ใช่ฟรี
phihag

1
@Oxwivi ความไว้วางใจนั้นไม่มีมูลความจริงเพราะทุกคนสามารถใส่อะไรก็ได้ลงในที่เก็บข้อมูลฟรี อย่างไรก็ตามการสนทนานี้อยู่ไกลเกินขอบเขตสำหรับคำถามนี้ (เกี่ยวกับการคาดการณ์ล่วงหน้า) คุณควรถามว่าจะได้รับรายชื่อไดรเวอร์ที่เป็นกรรมสิทธิ์ของระบบปัจจุบันได้อย่างไร
Phihag
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.