失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > CentOS/Ubuntu制作自动安装arm iso镜像

CentOS/Ubuntu制作自动安装arm iso镜像

时间:2019-07-10 01:25:41

相关推荐

CentOS/Ubuntu制作自动安装arm iso镜像

一、目的

减少操作系统安装过程中人机交互过程,实现选择光盘安装后,无需其他人机交互过程即可自动完成操作系统的安装。

二、环境和软件工具

环境:LinuxUbuntu/CentOS操作系统(其他发行版未作尝试)

软件:mkisofs,xorriso

软件安装:

CentOS:yuminstallmkisofsxorriso-y

Ubuntu:sudoaptinstall-ymkisofsxorriso

三、iso重新打包

1.Ubuntu

1.1原料

我是用ubuntu-16.04.3-server-arm64.iso挂载出来再做一份拷贝,如果有现成的编译环境也是可以的。

$ mkdir mnt/ ubuntu/

$ ls -al

mnt/

ubuntu/

ubuntu-16.04.3-server-arm64.iso

$ sudo mount ubuntu-16.04.3-server-arm64.iso mnt/

$ cp -rf ./mnt/* ./mnt/.disk/ ./ubuntu/

$ sudo umount ./mnt/

1.2修改/添加配置文件

1.2.1.boot/grub/grub.cfg

$ vim ubuntu/boot/grub/grub.cfg

set menu_color_normal=cyan/blue

set menu_color_highlight=white/blue

set timeout=60

insmod gzio

menuentry 'Install Ubuntu' {

set background_color=black

linux /install/vmlinuz auto-install/enable=true file=/cdrom/preseed/ubuntu.seed

initrd /install/initrd.gz

}

(1)settimeout=60##设置60秒无应答自动选择默认项

(2)auto-install/enable=true##允许自动安装模式

(3)file=/cdrom/preseed/ubuntu.seed##指定自动安装的preseed文件。

(4)如果想将正常发行的iso和可以自动安装的iso合并为一个,可以添加其他的菜单项,但是一定确保上面这条配置是默认项,并配置超时操作。

1.2.2.preseed文件preseed/ubuntu.seed

$vimubuntu/preseed/ubuntu.seed

#########################################################################

##CDROMautoinstall

#########################################################################

#Continueinstallon"nokernelmoduleswerefoundforthiskernel"

#d-ianna/no_kernel_modulesbooleantrue

d-iauto-install/enablebooleantrue

##Setcountry,languageandkeyboardmap

d-idebian-installer/languagestringen

d-idebian-installer/countrystringUS

d-idebain-install/localestringen_US.UTF-8

#Optionallyspecifyadditionallocalestobegenerated.

#d-ilocalechooser/supported-localesmultiselectzh_CH.UTF-8,C.UTF-8,en_US.UTF-8

#d-ikeyboard-configuration/xkb-keymapselectus

##Disableautomatic(interactive)keymapdetection.

d-iconsole-setup/ask_detectbooleanfalse

d-ikeyboard-configuration/layoutcodestringus

##Toselectavariantoftheselectedlayout(ifyouleavethisout,the

##basicformofthelayoutwillbeused):

#d-ikeyboard-configuration/variantcodestringdvorak

##netconfig

d-inetcfg/choose_interfaceselectauto

d-inetcfg/get_hostnamestringunassigned-hostname

d-inetcfg/get_domainstringunassigned-domain

##setrootpassword

d-ipasswd/root-loginbooleanroot

d-ipasswd/root-passwordpasswordroot

d-ipasswd/root-password-againpasswordroot

d-iuser-setup/allow-password-weakbooleantrue

##creatuser

d-ipasswd/make-userbooleantrue

d-ipasswd/user-fullnamestringUser

d-ipasswd/usernamestringuser

d-ipasswd/user-password-cryptedpassworduserpassword

d-ipasswd/user-password-againpassworduserpassword

##EncryptyourhomedirectoryNO

d-iuser-setup/encrypt-homebooleanfalse

##ControlswhetherornotthehardwareclockissettoUTC.

d-iclock-setup/utcbooleantrue

d-itime/zonestringAsia/Shanghai

##Diskusage

d-ipartman-auto/diskstring/dev/sda

#d-ipartman-auto/methodstringlvm

#d-ipartman-auto-lvm/guided_sizestringmax

d-ipartman-auto/methodstringregular

d-ipartman-lvm/device_remove_lvmbooleantrue

d-ipartman-md/device_remove_mdbooleantrue

d-ipartman-lvm/confirmbooleantrue

d-ipartman-lvm/confirm_nooverwritebooleantrue

d-ipartman-auto/choose_recipeselectatomic

d-ipartman-partitioning/confirm_write_new_labelbooleantrue

d-ipartman/choose_partitionselectfinish

d-ipartman/confirmbooleantrue

d-ipartman/confirm_nooverwritebooleantrue

##umount/dev/sda

d-ipartman/unmount_activebooleantrue

d-ipreseed/early_commandstringumount/media||true

#setmirror CD 安装不需要设置:mirror

#d-imirror/countrystringmanual

#d-imirror/http/

#d-imirror/http/directorystring/ubuntu-ports/

#d-imirror/http/proxystring

#d-imirror/http/mirrorselect192.168.50.122:8083

#d-imirror/http/mirrorselect192.168.1.107:80

##apt-setup

#d-iapt-setup/non-freebooleantrue

#d-iapt-setup/contribbooleantrue

d-iapt-setup/use_mirrorbooleanfalse

d-iapt-setup/restrictedbooleantrue

d-iapt-setup/universebooleantrue

d-iapt-setup/backportsbooleantrue

d-iapt-setup/services-selectmultiselectsecurity

d-iapt-setup/

d-iapt-setup/security_pathstring/ubuntu

d-ipkgsel/update-policyselectnone

##installsoftware

taskseltasksel/firstmultiselectstandard

##Individualadditionalpackagestoinstall

d-ipkgsel/includestringopenssh-servervim

d-ipkgsel/upgradeselectnone

popularity-contestpopularity-contest/participatebooleanfalse

##Grubandbootloder

##Thisisfairlysafetoset,itmakesgrubinstallautomaticallytotheMBR

##ifnootheroperatingsystemisdetectedonthemachine.

d-igrub-installer/only_debianbooleantrue

d-igrub-installer/with_other_osbooleantrue

##Avoidthatlastmessageabouttheinstallbeingcomplete.

d-ifinish-install/keep-consolesbooleantrue

d-ifinish-install/reboot_in_progressnote

d-icdrom-detect/ejectbooleanfalse

1.3重新打包iso

$ sudo xorriso -as mkisofs -r -checksum_algorithm_iso md5,sha1 -V 'Ubuntu-Server 16.04.3 LTS arm64' \-o ./new-ubuntu-16.04.3-server-arm64.iso -J -joliet-long -cache-inodes -e boot/grub/efi.img \-no-emul-boot -append_partition 2 0xef ubuntu/boot/grub/efi.img -partition_cyl_align all ubuntu/

生成的iso就在当前目录下。

2.CentOS

2.1原料

我是用CentOS-7-aarch64-Everything.iso挂载出来再做一份拷贝,如果有现成的编译环境也是可以的。(用的是CentOS7.4-1708-ARM服务器版iso)

$ mkdir mnt/ centos/

$ ls -al

centos/

mnt/

CentOS-7-aarch64-Everything.iso

$ sudo mount CentOS-7-aarch64-Everything.iso mnt/

$ sudo cp -rf mnt/* mnt/.discinfo mnt/.treeinfo centos/

$ sudo umount ./mnt/

2.2修改/添加配置文件

2.2.1grub菜单EFI/BOOT/grub.cfg对默认项内容修改:

$ vim centos/EFI/BOOT/grub.cfg

set timeout=60

### END /etc/grub.d/00_header ###

search --no-floppy --set=root -l 'CentOS 7 aarch64'

### BEGIN /etc/grub.d/10_linux ###

menuentry 'install CentOS Linux AltArch 7' --class red --class gnu-linux --class gnu --class os {

linux /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20aarch64 ip=dhcp acpi=force inst.ks=cdrom:/ks-iso.cfg

initrd /images/pxeboot/initrd.img

}

(1)inst.stage2=hd:LABEL=CentOS\x207\x20aarch64##第二部执行的空间LiveOS的父目录位置。

(2)inst.ks=file:/ks-iso.cfg##自动安装用到的kickstart文件路径。

(3)acpi的设置根据具体设备而定,有些可能需要设置为off

2.2.2.kickstart文件

$ vim centos/ks-iso.cfg

#version=DEVEL# System authorization informationauth --enableshadow --passalgo=sha512# Use CDROM installation mediacdrom# Use text mode installtext# Run the Setup Agent on first bootfirstboot --enableignoredisk --only-use=sda# Keyboard layoutskeyboard --vckeymap=us --xlayouts=''# System languagelang en_US.UTF-8# Network informationnetwork --bootproto=dhcp --device=eth0 --ipv6=auto --activatenetwork --bootproto=dhcp --device=eth1 --onboot=off --ipv6=autonetwork --bootproto=dhcp --device=eth2 --onboot=off --ipv6=autonetwork --bootproto=dhcp --device=eth3 --onboot=off --ipv6=autonetwork --hostname=localhost.localdomain# Root passwordrootpw --iscrypted $6$Kd3yxUtwpOk3fJ.M$KnTt/6pHJzXWYcKGQbqqkifavlMLrQcuOd6OAud97qD2IbFcWGtljsRVo9qWSSHj0Mcy.HmyLZ0JsDlq8mQ7B/# System servicesservices --enabled="chronyd"# Do not configure the X Window Systemskipx# System timezonetimezone US/Alaska --isUtcuser --groups=user,wheel --name=user --password=$6$aBUT2gAUGjmQEeKF$.y8qtYgDX0gZZyiAVbBwlCfsNgPUykgP9HP82vzAcRJMz2E0ynnHpthBaSVlJWk0a8EmUZJDD6marUZhH7mkG1 --iscrypted --gecos="user"# System bootloader configurationbootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sdaautopart --type=lvm# Partition clearing informationclearpart --all --initlabel --drives=sdareboot%post #安装完成后的操作%end%packages#需要安装的软件包%end

以上自动安装配置只是提供一种方案。

2.3重新打包iso

$cdcentos/

$ sudo genisoimage -e images/efiboot.img -no-emul-boot \-T -J -R -c boot.catalog -hide boot.catalog -V "CentOS 7 aarch64" \-o ../CentOS-7-aarch64-Everything.iso .

---------------------

原文:/Frank_Abagnale/article/details/78963876

如果觉得《CentOS/Ubuntu制作自动安装arm iso镜像》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。