Guest User

Untitled

a guest
Feb 23rd, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. #!/bin/zsh -e
  2.  
  3. cd ~/tmpfs
  4. mkdir -p .lxc-root .lxc-data/etc .lxc-data/home/lilydjwg/{.vim,.cache} .lxc-work
  5.  
  6. sudo GDK_DPI_SCALE=$GDK_DPI_SCALE zsh -e - <<'EOF'
  7. modprobe overlay
  8. mountpoint .lxc-root || mount -t overlay -o lowerdir=/,upperdir=$PWD/.lxc-data,workdir=$PWD/.lxc-root overlayfs $PWD/.lxc-root
  9.  
  10. # .lxc-root/etc/resolv.conf is protected
  11. echo nameserver 192.168.57.1 > .lxc-data/etc/resolv.conf
  12. rm -f .lxc-root/etc/fstab
  13. rm -r .lxc-root/var/log/journal
  14. mkdir -p .lxc-root/var/log/journal
  15. chgrp systemd-journal .lxc-root/var/log/journal
  16. setfacl -Rnm g:systemd-journal:rx,d:g:systemd-journal:rx .lxc-root/var/log/journal
  17.  
  18. setopt NULL_GLOB
  19. ln -sf /usr/lib/systemd/system/multi-user.target .lxc-root/etc/systemd/system/default.target
  20. rm -f .lxc-root/etc/systemd/system/multi-user.target.wants/*
  21. rm -f .lxc-root/etc/systemd/user/default.target.wants/xdg-user-dirs-update.service
  22. rm -f .lxc-root/etc/systemd/system/default.target.wants/shutdown-diagnose.service
  23. rm -f .lxc-root/usr/lib/systemd/system/shutdown.target.wants/alsa-store.service
  24. rm -f .lxc-root/usr/lib/systemd/system/multi-user.target.wants/*.timer
  25. rm -rf .lxc-root/usr/etc/systemd/system/network-online.target.wants
  26. rm -rf .lxc-root/usr/lib/systemd/system/timers.target.wants
  27. # this makes systemd-tmpfiles-setup.service fail on ro /sys
  28. rm -f .lxc-root/usr/lib/tmpfiles.d/linux-firmware.conf
  29. unsetopt NULL_GLOB
  30.  
  31. ln -sf /usr/lib/systemd/system/rc-local.service .lxc-root/etc/systemd/system/multi-user.target.wants/rc-local.service
  32. cat > .lxc-root/etc/rc.local <<'RCLOCAL'
  33. #!/bin/sh
  34. route add -net default gw 192.168.57.1
  35. route add -net 192.168.0.0/16 eth0
  36. route del -net 192.0.0.0/8
  37. RCLOCAL
  38. chmod +x .lxc-root/etc/rc.local
  39.  
  40. mkdir -p .lxc-data/home/lilydjwg
  41. setfattr -n trusted.overlay.opaque -v y .lxc-data/home/lilydjwg
  42. chown lilydjwg: .lxc-root/home/lilydjwg
  43. touch .lxc-root/etc/.updated
  44. if [[ -f .lxc-root/var/lib/pacman.fs ]] && ! mountpoint .lxc-root/var/lib/pacman; then
  45. # make overlayfs make a copy of the file, instead of referencing the original one
  46. # this happens with linux 4.9.6
  47. touch .lxc-root/var/lib/pacman.fs
  48. # XFS refuses to mount a same UUID by default
  49. mount -o loop,nouuid .lxc-root/var/lib/pacman{.fs,}
  50. fi
  51.  
  52. mkdir -p .lxc-data/home/lilydjwg/.config/htop
  53. cp {~,.lxc-data/home/lilydjwg}/.config/htop/htoprc
  54. mkdir -p .lxc-data/home/lilydjwg/.local/share/applications
  55. cp {~,.lxc-data/home/lilydjwg}/.local/share/applications/mimeapps.list
  56.  
  57. for r in root home/lilydjwg; do
  58. mkdir -p .lxc-root/$r/.ssh .lxc-root/$r/.zsh
  59. chmod 700 .lxc-root/$r/.ssh
  60. echo ZSH_PS_HOST=lxc-arch2 >> .lxc-root/$r/.zsh/zshrc.local
  61. cp ~lilydjwg/.ssh/id_ed25519.pub .lxc-root/$r/.ssh/authorized_keys
  62. cp ~lilydjwg/.zshrc ~lilydjwg/.zprofile .lxc-root/$r
  63. chown -R ${r##*/}:${r##*/} .lxc-root/$r/.ssh .lxc-root/$r/.zsh .lxc-root/$r/.zprofile .lxc-root/$r/.zshrc .lxc-root/$r/{.config,.local}
  64. done
  65. sed -i '/^root:/s/bash/zsh/' .lxc-root/etc/passwd
  66. cat <<CONFIG > .lxc-root/home/lilydjwg/.zsh/zshrc.local
  67. ZSH_PS_HOST=lxc-arch2
  68. export DISPLAY=192.168.57.1:0
  69. export GTK_IM_MODULE=xim QT_IM_MODULE=xim XMODIFIERS=@im=fcitx
  70. export GDK_DPI_SCALE=$GDK_DPI_SCALE
  71. CONFIG
  72.  
  73. bindmount () {
  74. local p=$1
  75. local name=${${p##*/}#.}
  76. if ! mountpoint .lxc-root$p; then
  77. mkdir -p $PWD/.lxc-work/$name
  78. mount -t overlay -o lowerdir=$p,upperdir=$PWD/.lxc-data$p,workdir=$PWD/.lxc-work/$name overlayfs $PWD/.lxc-root$p
  79. fi
  80. }
  81.  
  82. bindmount /home/lilydjwg/.vim
  83. bindmount /home/lilydjwg/.cache
  84. EOF
  85.  
  86. [[ -f .lxc-root/home/lilydjwg/.vim/vimrc ]] || (
  87. cd .lxc-root/home/lilydjwg
  88. git clone /home/lilydjwg/.vim
  89. cd .vim
  90. git remote set-url origin git://192.168.57.1/.vim
  91. )
  92.  
  93. sudo zsh -c "lxc-start -F -n arch2; mount -o remount,rw .lxc-root"
Add Comment
Please, Sign In to add comment