LINUX.ORG.RU

Установка и настройка ArchLinux меньше, чем за 6 минут

 , , , ,


5

3

Первый раз в жизни написал скрипт на bash.Вначале нужно настроить сеть, а затем и запустить скрипт.Скрипт все за тебя сделает и после чрута надо во второй раз запустить другой скрипт.Второй скрипт все сконфигуриет и выйдет из системы.
Общее время работы двух скриптов всего 5.48 (5 минут и 48 секунд), после этого я ребнулся.
Кстати вот сам первый скрипт

# Этот скрипт полностью установят и настроят "ArchLinux".
# Этот скрипт включает в себе 36 строк кода, кроме комментариев.
P="Если долго,то ждите,тк. машина НИКОГДА не ошибается"
cd configs
loadkeys ru
setfont cyr-sun16
cp -v locale.gen /etc/
locale-gen
export LANG=ru_RU.UTF-8
echo 'Форматирование дисков'
echo ${P}
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
swapon /dev/sda2
echo 'Монтирование дисков'
mount /dev/sda1 /mnt
mkdir /mnt/home
mount /dev/sda3 /mnt/home
echo
echo 'Установка "ArchLinux"'
echo ${P}
pacman -Sy --noconfirm --noprogressbar --quiet reflector
pacman -S --noconfirm --needed --noprogressbar --quiet reflector
reflector -l 3 --sort rate --save /etc/pacman.d/mirrorlist
pacstrap /mnt base base-devel
genfstab -p -L /mnt > /mnt/etc/fstab
echo
cd -
cp -R configs /mnt/
cp install-2.sh /mnt/
arch-chroot /mnt 
rm -R /mnt/configs
rm /mnt/install-2.sh
umount /dev/sda3
umount -l /dev/sda1
echo
echo 'Поздравляем, вы установили "ArchLinux"'
echo 'Теперь вам надо ввести 'reboot', чтобы перезагрузиться и не забудь вынуть диск"'
Второй скрипт
B='/etc/backup/'
P="Если долго,то ждите,тк. машина НИКОГДА не ошибается"
echo "Настройка начата в $(date +%T)"
echo 'Идет настройка, только что свежеустановленной системы "ArchLinux"'
echo
echo
echo 'Создание бэкапного каталога в /etc/backup'
mkdir --mode=700 ${B}
cd configs
echo
echo 'Генерирование локалей'
echo ${P}
cp -v /etc/locale.gen ${B}
cp -v locale.gen /etc/
locale-gen
echo
echo 'Языковые и региональные настройки'
cp -v locale.conf /etc/
cp -v vconsole.conf /etc/
cp -v hostname /etc/
export LANG=ru_RU.UTF-8
ln -svf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
loadkeys ru
setfont cyr-sun16
hwclock --systohc --utc
echo
echo 'Настройка сердца "ArchLinux"'
cp -v /etc/pacman.conf ${B}
cp -v pacman.conf /etc/
pacman -Sy --noconfirm --needed --noprogressbar --quiet reflector
mkdir --mode=700 /etc/backup/pacman.d
cp -v /etc/pacman.d/mirrorlist /etc/backup/pacman.d/
echo 'Идет запись лучших зеркал в файл'
echo ${P}
reflector -l 100 --sort rate --save /etc/pacman.d/mirrorlist
echo 'Идет установка и удаление системных программ'
echo ${P}
pacman -R --noconfirm netcfg
pacman -S  --noconfirm --needed --noprogressbar --quiet yaourt sudo grub-bios zsh linux-pf-core2 wireless_tools wpa_supplicant wpa_actiond netctl dialog linux-pf-headers-core2
pacman -Rdd --noconfirm --needed --noprogressbar --quiet linux
echo
echo 'Создание инитрамфса,создание учетки и настройка загрузчика'
echo ${P}
useradd -m -g users -G audio,games,lp,optical,power,scanner,storage,video -s /bin/zsh latunix
cp -v /etc/mkinitcpio.conf ${B}
cp -v mkinitcpio.conf /etc/
mkinitcpio -p linux-pf
cp -v /etc/yaourtrc ${B}
cp -v yaourtrc /etc/
mkdir --mode=700 /etc/backup/default
cp -v /etc/default/grub /etc/backup/default/
cp -v default/grub /etc/default/
grub-install --recheck --no-floppy /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
echo
echo 'Прочие настройки'
cp -v /etc/sudoers ${B}
cp -v sudoers /etc/
cp -v /etc/sysctl.conf ${B}
cp -v sysctl.conf /etc/
cp -v /etc/makepkg.conf ${B}
cp -v makepkg.conf /etc/
cp -v /etc/fstab ${B}
cp -v fstab /etc/
cp -v zsh/ROOT /root/.zshrc
cp -v zsh/USER /home/latunix/.zshrc
echo
echo 'Окончательная настройка'
echo 'Пароль для рута'
passwd
echo 'Пароль для учетки'
passwd latunix
uptime
exit
Я хотел бы объединить 2 скрипта, но после чрута скрипт не работает и вот поэтому пришлось разделить его на 2 скрипта. Кто-то знает как заставить его работать после чрута,без присутствия линуксоида??????????????????

Ну и в чём проблема ?

Вместо:

arch-chroot /mnt

mount -o bind /dev /mnt/dev
mount -t proc none /mnt/proc
cp script2.sh /mnt/script2.sh
chroot /mnt /script2.sh

Ну а дальше:

rm -R /mnt/configs
rm /mnt/install-2.sh
umount /dev/sda3
umount /dev/sda1
Да, без ключа '-l', хотя не уверен.

kostik87 ★★★★★ ()

Не нужно. Арч на то и арч, что ставишь то, что надо.

Extraterrestrial ★★★★ ()

Запускать не пробовал, но вот пример ошибки, которая будет возникать где-нибудь в половине случаев:

mkfs.ext4 /dev/sda3

Could not stat /dev/sda3 --- No such file or directory

The device apparently does not exist; did you specify it correctly?

Ну дальше понятно. Или этот скрипт предполагается использовать только на одном компьютере, когда приходит то самое время?

dmfd ()
Последнее исправление: dmfd (всего исправлений: 1)
Ответ на: комментарий от dmfd

Ну что, ТС не разобрался как с помощью echo и fdisk можно создавать таблицу разделов. Он вам об этом не сказал, но он предварительно создаёт указанные разделы. А так с помощью read можно прикрутить хотя бы указание разделов, на которые ставить систему или ещё добавить возможно вызова fdisk / cfdisk перед этим всё так же посредством read и проверки значения переменных.

kostik87 ★★★★★ ()
Ответ на: комментарий от total2060

Да вместо этого:

rm -R /mnt/configs
rm /mnt/install-2.sh
umount /dev/sda3
umount /dev/sda1

Укажите:

rm -R /mnt/configs
rm /mnt/script2.sh
umount /mnt/dev
umount /mnt/proc
umount /dev/sda3
umount /dev/sda1
[/cdoe]

kostik87 ★★★★★ ()
Ответ на: комментарий от Extraterrestrial

Арч на то и арч, что ставишь то, что надо.

Лол, ты просто нормальных дистрибутивов не видел.

anonymous ()

сделай cat 1.sh > /chroot/1.sh потом chroot /chroot bash /1.sh

и добавь функции, настрой интеркативность

например не useradd ... latunix, а:

read userlogin -p "Введите логин: "
useradd ... $userlogin

Прочитай ABS, сделай функции сделай getopts кароч пили:D

И собери ArchLite :DDD Сделай инсталятор на dialog :DDD будет ncurses гуевиеа, плюс можно zenity и kdialog и собери все с sfx архив:DDD /arch/setup вернешь и добавь установку initscripts-fork

ubuntuawp ★★ ()
Ответ на: комментарий от kostik87

echo и fdisk

И ещё вычисления оптимальных размеров разделов. Носители-то все разные.

dmfd ()
Ответ на: комментарий от dmfd

Можно всё тем же read предварительно спрашивать размер создаваемых разделов либо создавать всегда фиксированного размера. В общем возможностей масса.

kostik87 ★★★★★ ()

Вангую новое соревнование среди школьников-арчеводов - переустановка арча на время.

программирование

А где собственно программирование?

bsdfun ★★★★★ ()
Ответ на: комментарий от kostik87

Я об этом не знал.Посоветуйте плиз хорошую документацию о Bash на русском

total2060 ()
Ответ на: комментарий от kostik87

И это всё пока только одно действие. Без достаточно сложной логики этот скрипт не может претендовать на роль инсталлятора. Ну а лишать гимназистов удовольствия копипастить команды из вики тоже неправильно: так они и ЧСВ не поднимут, и с консолью работать не научатся. А больше арч ни на что не годен.

dmfd ()
Ответ на: комментарий от dmfd

Человек реализовал всё на том уровне знаний, которые имел. Правда название темы он, конечно уж больно громкое придумал, а так если захочет разберётся допишет удобный, хотя бы для себя установщик.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Человек реализовал всё на том уровне знаний, которые имел.

Я всё понимаю, просто показал, что есть куда развиваться. Ну и вообще скрипт страшноватый, конечно. Если его не слишком знающий человек запустит, он сильно рискует потерять все свои документы и фоточки.

dmfd ()
Последнее исправление: dmfd (всего исправлений: 1)

Покритикую чуток, ты не против?

Вот это совсем не Ъ:

mount /dev/sda1 /mnt
Нужно так:
mkdir /mnt/arch
mount /dev/sda1 /mnt/arch

Не забудь сказать, что перед скриптом нужно выполнить fdisk и правильно разбить диски. Иначе твой скрипт таких делов натворит!

Время работа меряется не с помощью вывода uptime, а с помощью команды time, в аргументах которых идет твой скрипт.

Вот это в корне не правильно:

P="Если долго,то ждите,тк. машина НИКОГДА не ошибается"
echo ${P}
ибо в твоем скрипте не обрабатывается ни одна ошибка. А что будет если сеть недоступна? А если места не хватит?
Я уже не говорю про знание русского языка.

И потом, как я понял, этот скрипт устанавливает базовую систему. А почему не устанавливаешь все остальное?

Привязка к юзеру latunix. Привязка к твоей структуре диска...
Зачем тебе этот скрипт? Будешь часто систему переустанавливать на один комп? Это же не Windows! Лучше научить нормально обновлять, чтобы переустанавливать не нужно было.

В общем, за лабораторную работу ставлю 4+ :)

Дальше - либо допиливай (обработка ошибок, вывод нормального прогресса, в отдельный конфиг выведи возможность задания разделов диска, имени пользователя и другую user-зависимую лабуду), либо забей.

Но начинание правильное. Маладца :)

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 3)

Выпилили же AIF. С ним ниилитно

anonymous ()

По первому скрипту -

Форматирование дисков
Монтирование дисков
не забудь вынуть диск

ну, ты понял?

anonymous ()

Установка и настройка ArchLinux меньше, чем за 6 минут

Астрологи объявляют неделю школоты. Количество установок арча возросло.

Я шучу, полезное дело делаешь. Только потрать время на чтение некоторой информации, а то местами довольно криво.

sh4r4t4n ()
Ответ на: комментарий от Extraterrestrial

Здравствуйте!!! Помогите пожалуйста!!! Установил линукс кубунту 11.10!!! Как в неё поставить проги от винды, да и вообще это возможно???

RybakovKostya ()
Ответ на: комментарий от RybakovKostya

А нафига тогда вам линукс если вы жить не можете без виндовых программ?

cinyflo ★★★★★ ()

Для арч не интересно, там и так установка быстрая. Пишу подобный скрипт для gentoo, мне кажется там это более актуально.

Woklex ()

Но ведь есть Archbang который и так всё делает сам.

SjZ ★★★★★ ()
Ответ на: Покритикую чуток, ты не против? от Kroz

Подскажите пожалуйста-как научить систему нормально обновляться,чтоб не переустанавливать как винду каждый раз?Второй вопрос(в поиске настройка netctl выдало это).Пробовал настроить по вики,но чего-то не догнал.Поставил netctl,netcfg удалился,потом остновил сервис интернета и попытался запустить netctl start профиль.Вобщем ошибки и я вернулся на запуск инета юнитом системд.

tarhun76 ()
Ответ на: комментарий от RybakovKostya

Посоветую поставить Минт13 Майа,а о форточке правда забудь.Здесь все свое и бесплатно.

tarhun76 ()
Ответ на: комментарий от tarhun76

С интернетом разобрался.Как систему правильно настроить на обновление(чтоб не рухнуло,хотя это не страшно).

tarhun76 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.