View previous topic :: View next topic |
Author |
Message |
maxim.251 Tux's lil' helper

Joined: 14 Jul 2012 Posts: 127
|
Posted: Fri Feb 28, 2014 11:39 pm Post subject: EasyGentoo as hell. Automatic Instaling Gentoo from skript |
|
|
This is a Gentoo installation process. Based on the Gentoo Wiki and updates made by me.
The installation process has made our lives easier. Since anyway we all need to install exactly the same way. So why bother clicking on the keyboard 3 days, if you can set the basic data and enable the auto installations, which will take one day.
I was working on my installer.
The difference is that I shared facilities into categories, where it is easier to change at any case of any problems.
I decided that I did not I turn to the installation partition, but still I think about it.
But it seems to me that geparted enough for it to partition your hard drive.
My installation will be more focus on versatility and simplicity.
I do not want to create the installer that the construction will be difficult.
The installation will continue until xorg.
And this is my script.
This is demo, and still i need work make.
I want to thank for everything shdcn, is that thanks to him I myself started to create something of mine.
That through his script, I myself decided to create something of mine.
Thank you shdcn
After testing my previous script, I stood in a deadlock.
It turned out that the problem is to move the folder /user on separate partitions.
I've tried everything, I did that compiled kernel to be able to mounting /user fileat separate partition, but I do not know why does not detect my init script.
I came to the conclusion that giving up the possibility of moving the files from root folder on a separate partition, and arrange basic instalation.
This script is written from scratch, based on the basic installation of gentoo-handbook,
and added a innovacions to script. So now the progress is cleaner, and you can observe a progress of parts what is now instaling.
Forgive me that it is in Polish, but still is in the works. But it is now more stable. But for me it is more clear catch errors or add new patches.
A few words about the script. :
The script can be initiated from a folder home or other location.
In the terminal you need to give a set of law executable
Code: | chmod 700 instalowanie_gentoo.sh |
To run the screept, beter is use new komand
Code: | bash instalowanie_gentoo.sh |
Because BASH supports the more command and is modern.
command is old and does not support some new commands.
This is very important!
you need to edit the script and set your own parameters, where should be mounted partitions.
Code: | swap_dysk="/dev/sda5"
root_dysk="/dev/sda8"
boot_dysk="/dev/sda7" #1 #about 500Mb
tarbal='http://gentoo.mirror.pw.edu.pl/releases/x86/current-stage3/stage3-i686-20140225.tar.bz2'
root_folder=/mnt/gentoo
boot_folder=/mnt/gentoo/boot
haslo=1
ch="chroot /mnt/gentoo" |
Please go to the web browser,
and look at your own tarball www.gentoo.org and copy the link to the script.
Code: | tarbal='http://gentoo.mirror.pw.edu.pl/releases/x86/current-stage3/stage3-i686-20140225.tar.bz2' |
It is important to leave these characters ' ' between the link.
If for some reason your installation ended unexpectedly Or if you want to make a change and move the system from the place where the last finished. It's enough to add more hash.
Code: |
#montowanie
#brakuje_program # <--- change to ----> #brakuje_program
#pobieranie
#rozpakowanie
#montowanie_root
#przygotowanie_chroot
#update_shell
#instalowanie_portage
#wybranie_profilu
#instalacja_ufed
zmiany_w_makeconf
znajdz_flagi
zoneinfo
config_locales
uruchom_local
instalacja_zrudel
kompilacja_kernela
modules_pro
konfiguring_fstab
konfiguring_host
ustaw_haslo
grub_config
setings_xorg
Instalowanie_programow
#instalowanie_gnome
|
And the installation will start from the place where you want to begin.
At the end also very important!
at begining of screept you can change what you want have on make.conf. This is only base of that what is needed to corect instaling system.
Line of installing the Gnome desktop environment "gnome-light" is not tested, and you yourself see what flags are needed to properly install the software.
And finally, if you are familiar with writing BASH Look at the code and change it if you think you need. for you're needs.
EasyGentoo as hell 1.0.6 <--- this is updating, ill will make it number up if I make change something.
good luck
name of file, you can rename it if you want.
Code: | instalacja_gentoo.sh |
Last edited by maxim.251 on Sun Mar 02, 2014 2:41 pm; edited 6 times in total |
|
Back to top |
|
 |
maxim.251 Tux's lil' helper

Joined: 14 Jul 2012 Posts: 127
|
Posted: Sun Mar 02, 2014 1:02 am Post subject: instalowanie_gentoo.sh |
|
|
Code: | #!/bin/bash
CXX='${CFLAGS}' #<==== Do not change!
#### Start configuring ####
swap_dysk="/dev/sda2"
root_dysk="/dev/sda4"
#boot_dysk="/dev/sda7" #1 #about 500Mb
tarbal=http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3/stage3-i686-20140225.tar.bz2
root_folder=/mnt/gentoo
boot_folder=/mnt/gentoo/boot
ch="chroot /mnt/gentoo"
path_kernel=/usr/src/linux
pasword=1
name_host="maxim"
user_name="maxim"
### MAKE.CONF file.
make_conf="-j2"
cf_lags="-Os -march=native -pipe"
use_flags="X dbus gnome gtk laptop mmx networkmanager systemd sse sse2 sse3 ssse3 symlink
-bluetooth -llvm -telepathy -ipv6 -kde -qt4 -bindist"
ling_uas="pl en"
video_card="intel"
python_target="python2_7"
input_device="evdev keyboard mouse synaptics wacom"
###
##### End configuring ####
export user_name=$user_name
export name_host=$name_host
export pasword=$pasword
export path_kernel=$path_kernel
export a=$1
com_p(){
export a=$1
echo " now is make + $a"
echo '#!/bin/bash' > /mnt/gentoo/com.sh
echo 'echo "wykonanie komendy * $a"'>> /mnt/gentoo/com.sh
echo "$1" >> /mnt/gentoo/com.sh
echo 'sleep 2' >> /mnt/gentoo/com.sh
chmod 700 /mnt/gentoo/com.sh
xterm -e "$ch /bin/bash /com.sh"
echo " comand finish * $a"
}
montowanie(){
swapon all
cd /
if [ -e /mnt/gentoo/gentoo_ex.log ]
then
echo "folder /mnt/gentoo * istnieje"
sleep 1
else
touch /mnt/gentoo/gentoo_ex.log
echo "utworzenie folderu $root_folder"
mkdir $root_folder
sleep 1
fi
if [ -e /mnt/gentoo/is_mounted.log ]
then
echo "folder /mnt/gentoo * jest zamontowany"
sleep 1
else
echo "montowanie root"
touch /mnt/gentoo/is_mounted.log
mount $root_dysk $root_folder
sleep 1
fi
if [ -e /mnt/gentoo/boot/is_mounted.log ]
then
echo "folder /mnt/gentoo/boot * jest zamontowany"
sleep 1
else
echo "montowanie /mnt/gentoo/boot"
touch /mnt/gentoo/boot/is_mounted.log
mount $boot_dysk /mnt/gentoo/boot
sleep 1
fi
}
pobieranie () {
echo "przejscie folderu $root_folder"
cd /mnt/gentoo
sleep 1
echo "pobranie tarball"
sleep 1
xterm -e "wget $tarbal"
#
}
rozpakowanie () {
echo "rozpakowanie pakietu"
sleep 1
cd /mnt/gentoo
if [ -e $root_folder/stage3* ]
then
root_folder=/mnt/gentoo
echo "rozpakowanie pakietu"
xterm -e "tar -xvjpf $root_folder/stage3*"
else
echo "Pakage tarball is not downloaded"
echo "I stop execution of the script. Check the path tarball or in the terminal make it manually and then run the script.
tarbal= <The path to the tarball that I need to download>"
echo "koncze działanie"
exit
fi
}
montowanie_root () {
#nano -w /mnt/gentoo/etc/portage/make.conf
echo "montowanie plików root"
sleep 1
cd /
echo "montowanie proc"
mount -t proc proc /mnt/gentoo/proc
sleep 1
echo "montowanie sys"
mount --rbind /sys /mnt/gentoo/sys
sleep 1
echo "montowanie dev"
mount --rbind /dev /mnt/gentoo/dev
sleep 1
echo "kopiowanie resolv.conf"
cp -L /etc/resolv.conf /mnt/gentoo/etc
sleep 1
}
przygotowanie_chroot(){
echo "przygotowanie chroot"
sleep 1
cat /proc/mounts > /etc/mtab
export SHELL=$(which bash); setterm -blank 0;
}
update_shell (){
echo "aktualizacja Shell"
com_p 'env-update'
com_p 'source /etc/profile'
#com_p 'cat /proc/mounts > /etc/mtab'
sleep 1
}
instalowanie_portage () {
echo "instalowanie portage"
sleep 1
com_p 'emerge-webrsync'
echo "sprawdzanie poprawności drzewa"
sleep 1
com_p 'emerge --sync'
update_shell
}
wybranie_profilu () {
echo "wybranie profilu 4"
sleep 1
#echo "wybierz z listy"
#read klawisz
#eselect profile set $klawisz
b=4
com_p "eselect profile set 4"
com_p 'eselect profile list; sleep 3'
sleep 1
}
instalacja_ufed () {
echo "instalacja ufed"
sleep 1
com_p 'emerge -v ufed'
}
make_conf(){
echo "make change to makeconf"
sleep 1
echo "CFLAGS=\"${cf_lags}\"
CXXFLAGS=\"$CXX\"
CHOST=\"i686-pc-linux-gnu\"
USE=\"$use_flags\"
LINGUAS=\"$ling_uas\"
MAKEOPTS=\"$make_conf\"
VIDEO_CARDS=\"$video_card\"
PYTHON_TARGETS=\"$python_target\"
#\" python3_2\"
#PYTHON_SINGLE_TARGET=\"python2_7 python3_2\"
INPUT_DEVICES=\"$input_device\"
#SYNC=\"rsync://rsync.europe.gentoo.org/gentoo-portage\"" > /mnt/gentoo/etc/portage/make.conf
}
znajdz_flagi() {
cpu_inst="$(grep flags /proc/cpuinfo | uniq | tr -s '[:blank:]' ' ' | cut -d':' -f2)"
flags_list="3dnow 3dnowext mmx mmxext sse sse2 sse3 sse4 sse4a sse4_1 sse4_2 sse5 ssse3"
for v in ${flags_list}
do
echo "${cpu_inst}" | grep -o -w "${v}" >> flags.eg
done
echo "${cpu_inst}" | grep -o -w "pni" &>/dev/null && echo "sse3" >> flags.eg
"available_cpu_flags=\"$(tr '\n' ' ' < flags.eg | sed -e 's:^[ \t]*::' -e 's:[ \t]*$::')\""
}
zoneinfo (){
#ls /usr/share/zoneinfo/Europe/
echo "Ustawienie czasu na Warzawa"
sleep 1
#read miasto
#miasto="Warsaw"
echo "Europe/Warsaw" > /mnt/gentoo/etc/timezone
}
config_locales (){
echo "ustawianie lokalizacji UTF-8"
sleep 1
echo "pl_PL.UTF-8 UTF-8" >> /mnt/gentoo/etc/locale.gen
echo "pl_PL ISO-8859-2" >> /mnt/gentoo/etc/locale.gen
}
uruchom_local (){
echo "uruchomienie programu aktualizującego lokalizacje"
sleep 1
update_shell
com_p 'eselect locale set 4'
com_p 'locale-gen'
update_shell
}
instalacja_zrudel (){
echo "instalowanie zrudel kernela"
sleep 1
com_p 'emerge -v gentoo-sources'
sleep 1
}
kompilacja_kernela (){
echo "kompilacja kernela"
cd /mnt/gentoo/usr/src/linux
sleep 1
#com_p 'emerge -v genkernel'
com_p 'cd $path_kernel; make mrproper'
com_p 'cd $path_kernel; make clean'
com_p 'cd $path_kernel; make defconfig'
cp /home/maxim/config.kernel /mnt/gentoo/usr/src/linux
make xconfig
com_p 'cd $path_kernel; make $make_opts'
com_p 'cd $path_kernel; make install'
com_p 'cd $path_kernel; make modules_install'
com_p 'cd $path_kernel; genkernel --install initramfs'
sleep 1
}
modules_pro (){
echo "zapisywanie modulow do pliku autostartu"
sleep 1
# lub
# cat /proc/modules
for i
in `lsmod | cut -d ' ' -f 1 | grep -v 'Module'`
do
echo "modules=\"$i\"" >> /mnt/gentoo/etc/conf.d/modules
done
com_p 'modules-update'
com_p 'rc-update add modules boot'
}
konfiguring_fstab(){
echo "ustawianie dysków w fstab"
echo "
# <fs> <mountpoint> <type> <opts> <dump/p$
# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
$boot_dysk /boot ext2 noatime,noauto 1 2
$root_dysk / ext4 noatime 0 1
$swap_dysk none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
/dev/fd0 /mnt/floppy auto noauto 0 0
proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0" > /etc/fstab
sleep 1
}
konfiguring_host(){
echo "configuracja host"
com_p 'echo "hostname=\"$name_host\"" >> /etc/conf.d/hostname'
echo "LANG=\"pl_PL.UTF-8\"" >> /mnt/gentoo/etc/env.d/02locale
echo "LC_TYPE=\"pl_PL.UTF-8\"" >> /mnt/gentoo/etc/env.d/02locale
update_shell
}
ustaw_haslo() {
com_p "useradd -m -G users,wheel,audio,portage,usb,plugdev -s /bin/bash $user_name"
com_p "passwd<<-PAS
$pasword
$pasword
PAS"
echo "twoje hasło to 1"
echo " * twoje root hasło to 1"
com_p "passwd $user_name<<-PAS1
$pasword
$pasword
PAS1"
echo "twoje haslo to $pasword"
com_p "gpasswd -a $user_name plugdev,users,wheel,audio,portage"
}
grub_config(){
cd /
export instaling=$instaling
echo "instalowanie grub"
sleep 1
prog2="grub os-prober sys-fs/ntfs3g"
for installing
in $prog2
do
echo "instalowanie grub"
sleep 2
com_p "MAKEOPTS=$make_opts emerge -v $installing"
done
com_p 'grep -v rootfs /proc/mounts > /etc/mtab'
com_p 'grub2-install /dev/sda'
sleep 2
com_p 'grub2-mkconfig -o /boot/grub/grub.cfg'
sleep 2
}
setings_xorg(){
echo 'INPUT_DEVICES="evdev keyboard mouse synaptics wacom"' >> /mnt/gentoo/etc/portage/make.conf
echo "instalowanie xorg serwer"
com_p 'emerge -v xorg-server'
com_p 'emerge -v twm'
com_p 'emerge -v zclock'
com_p 'USE="toolbar" emerge -v xterm'
}
update_system(){
com_p 'emerge --update --deep --newuse system'
}
update_world(){
com_p 'emerge gentoolkit'
com_p 'emerge --update --deep --newuse world'
com_p 'emerge --depclean'
com_p 'revdep-rebuild'
}
Instalowanie_programow(){
com_p 'emerge -v pcmciautils'
com_p 'USE="-ipv6" emerge -v syslog-ng'
com_p 'rc-update add syslog-ng default'
com_p 'USE="-ipv6" emerge -v dhcpcd'
com_p 'rc-update add dhcpcd default'
#com_p 'USE="-gnome -pulseaudio X -gtk -libnotify -qt4 -ipv6 -pcre -pm-utils -ipv6 -bluetooth " emerge -v wicd'
#com_p 'rc-update add wicd default'
#com_p '/etc/init.d/dbus start'
com_p 'rc-update add dbus default'
com_p 'emerge -v lshw'
}
instalowanie_gnome(){
echo "Instalowanie gnome"
com_p 'eselect profile set 4
eselect profile list
sleep 3'
update_shell
echo '
gnome-base/gnome-session branding
>=sys-auth/pambase-20120417-r3 systemd
>=net-dialup/ppp-2.4.5-r3 ipv6
#>=app-admin/syslog-ng-3.4.2 -ipv6
#>=net-misc/dhcpcd-6.2.0-r1 -ipv6
#=dev-libs/openssl-1.0.0j -bindist
#=x11-libs/libdrm-2.4.46 libkms
#=media-libs/mesa-9.1.6 xa
#>=dev-libs/openssl-1.0.1f -bindist' >> /mnt/gentoo/etc/portage/package.use
com_p 'emerge gnome-light'
#echo 'XSESSION="Gnome" > /mnt/gentoo/etc/env.d/90xsession' # For X session ustawienie, jeśli nie ma login manager
com_p 'env-update && source /etc/profile'
com_p 'emerge -v gdm'
#com_p 'rc-update add xdm default'
#com_p 'echo "exec gnome-session">~/.xinitrc'
#com_p 'echo 'DISPLAYMANAGER="GDM"'>/etc/conf.d/xdm'
}
#montowanie
#pobieranie
#rozpakowanie
#montowanie_root
#przygotowanie_chroot
#update_shell
#make_conf
#instalowanie_portage
#wybranie_profilu
#instalacja_ufed
#znajdz_flagi
#zoneinfo
#config_locales
#uruchom_local
#instalacja_zrudel
#kompilacja_kernela
#modules_pro
#konfiguring_fstab
#konfiguring_host
#ustaw_haslo
#grub_config
#setings_xorg
#update_system
#update_world
#Instalowanie_programow
#instalowanie_gnome
comen=$1
$comen #<------ this comand is a future, it make able to tart only this part of proces instaling what you want. example "instalowanie_gentoo.sh zoneinfo" But before you make that, you need make hash all comands executing parts of screept.
|
|
|
Back to top |
|
 |
tkhemili78 n00b

Joined: 31 Jul 2007 Posts: 38 Location: Eastern US
|
Posted: Sat Nov 08, 2014 9:09 am Post subject: pxeboot |
|
|
Have you tried running this thru pxeboot. for a rebuild/dr situation ? |
|
Back to top |
|
 |
szczerb Veteran

Joined: 24 Feb 2007 Posts: 1709 Location: Poland => Lodz
|
Posted: Sat Nov 08, 2014 5:14 pm Post subject: |
|
|
Seems like a nice contribution, but why on earth did you use polish for all the labels in the script?
I never use polish in my code. It just makes the content quite hard to read for most of the world... |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|