Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- myEnvSpawn() {
- die() {
- [ $# -gt 0 ] && printf -- "%s\n" "$*"
- exit 1
- }
- zedenv create $1
- zedenv mount $1
- systemd-nspawn -q --bind=/root --bind=/home/adam --bind=/usr/portage --bind=/var/tmp/portage --bind=/usr/local/portage --bind=/gentoo/ccache -D /tmp/zedenv-*$1 /bin/bash << EOF > /root/myEnvSpawn.log 2>&1
- # update portage
- emerge --sync
- update_kernel() {
- # emerge new kernel sources, make new symlink
- newver=$(emerge -pv gentoo-sources | grep ebuild | cut -d '-' -f 4 | cut -d ':' -f 1)
- emerge gentoo-sources || die "emerging gentoo-sources failed"
- ln -sf /usr/src/linux-${newver}-gentoo /usr/src/linux || die "symlink create failed"
- # use default kernel options for new kernel version options
- cd /usr/src/linux || die "cd failed"
- make olddefconfig || die "make olddefconfig failed"
- # genkernel do the rest
- genkernel all \
- --clean \
- --no-mrproper \
- --kernel-config=/usr/src/linux/.config \
- --save-config \
- --zfs \
- --bootloader=grub \
- --callback="emerge @module-rebuild zfs" || die "genkernel all failed"
- # just keep one kernel around
- eclean-kernel -n 1 || die "eclean failed"
- emerge --depclean || echo "depclean failed"
- }
- # check for new kernel version and update kernel
- [ -n "$(emerge -pv gentoo-sources | grep '\[ebuild.*U.*\]')" ] && update_kernel
- # if it makes it this far, update everything and keep going on fails.
- emerge -vuDN --with-bdeps=y --keep-going @world
- # just incase attr of grub.d files got slammed
- chmod -x /etc/grub.d/*
- chmod +x /etc/grub.d/{00_header,05_zfs_linux.py}
- EOF
- # cleanup work dir from /tmp
- zedenv umount $1
- for emptyd in /tmp/zedenv-*$1 ; do rmdir $emptyd ; done
- # update bootloader with new boot environment added to the list
- grub-mkconfig -o /boot/grub/grub.cfg
- activate_reboot() {
- zedenv activate $1 && reboot
- }
- less /root/myEnvSpawn.log
- read -p "activate new environment and reboot? (Y or N) " -n 1 -r
- [[ $REPLY =~ ^[Yy]$ ]] && activate_reboot
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement