[install] Script d'installation archlinux (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
KorteX39
Daikyu
Messages : 80
Inscription : mer. 12 mars 2014, 15:56

[install] Script d'installation archlinux (résolu)

Message par KorteX39 »

Bonjour à tous
Je m'atelle à une tache ardue. Je suis en train de créer un script bash (mon tout 1er script mais j'aime le gout du défie) et je bloque sur deux petites choses.
Je cherche dans un premier temps à afficher les differents disque contenu dans /dev/sd*. J'y arrive mais je ne sais comment exploiter le resultat pour que l'utilisateur puisse choisir le disque à préparer.
Le second soucis comment lancer fdisk sur le disque choisi et retourner sur le script une fois terminé?
Voici le bout de code que j'ai commencé à créer soyez indulgent comme je le précisait c'est mon tout premier script. Le but pour moi étant avant tout d'apprendre le bash.

Code : Tout sélectionner

#!/bin/bash
#Version 1.0
echo Installation de Archlinux
#Préparation des disques
echo Choix du disque sur lequel installer votre distribution
echo /dev/.sd*
exit 0
Bon en continuant de chercher, je me suis rendu compte que je pourrais peut-ere effectuer cette tache avec test. Genre

Code : Tout sélectionner

[[ -f /dev/sda ]]
[[ -f /dev/sdb ]]
...

Puis avec if si les fichiers existe je place les valeurs dans des variables differentes... sinon je ne les place pas ceci s'entends
Pensez-vous que ca puisse fonctionner?
Dernière modification par KorteX39 le dim. 26 avr. 2015, 19:00, modifié 1 fois.
Vivre libre ou mourir
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [install] Script d'installation archlinux

Message par papajoke »

Bonjour,
il est possible de faire directement une boucle du type:

Code : Tout sélectionner

for i in $(ls /dev/[hs]d[a-z][1-9]*)
ou de mettre le résultat du ls dans un tableau pour le réutiliser plusieurs fois ultérieurement
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
KorteX39
Daikyu
Messages : 80
Inscription : mer. 12 mars 2014, 15:56

Re: [install] Script d'installation archlinux

Message par KorteX39 »

Merci papajoke je vais essayer.
EDIT : Si je place ta commande cela me met une erreur

Code : Tout sélectionner

install: ligne 7: erreur de syntaxe près du symbole inattendu « exit »
install: ligne 7: `exit 0'
j'ai essayé comme cela

Code : Tout sélectionner

for i in $(ls /dev/[hs]d[a-z][1-9]*); do echo $(ls /dev/[hs]d[a-z][1-9]*); done
Mais la commande echo me retourne le tout fois quatre

Code : Tout sélectionner

Installation de Archlinux
Choix du disque sur lequel installer votre distribution
/dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2
/dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2
/dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2
/dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2
:shock: :shock:

EDIT 2 : non c'est bon j'ai trouvé

Code : Tout sélectionner

for i in $(ls /dev/[hs]d[a-z][1-9]*); do echo $i; done
Vivre libre ou mourir
Avatar de l’utilisateur
KorteX39
Daikyu
Messages : 80
Inscription : mer. 12 mars 2014, 15:56

Re: [install] Script d'installation archlinux

Message par KorteX39 »

Le script pour le moment fonctionne jusqu'au chroot. je donne un petit apercu du travail, N'hesitez pas à corrgier ou à me donner des idées.

Code : Tout sélectionner

#!/bin/bash
#Version 1.0
echo Installation de Archlinux
#Préparation des disques
echo Choix des partitions utilisé ex : /boot /home ...
[size=150]IL Y AURA UN BOUT DE CODE ICI POUR CHOISIR QUEL TYPE DE PARTITION ON VEUX SUR SON SYSTEM ET LA SUITE DU CODE S'EN TROUVERA UN PEU TRANSFORMÉ[/size]
echo Choix du/des disque sur lequel installer votre distribution
ls /dev/sd*
read -e -p "/ (ex /dev/sda) " SLASH
read -e -p "/home (ex /dev/sda) " HOME
read -e -p "/BOOT (ex /dev/sda) " BOOT
read -e -p "/TMP (ex /dev/sda) " TMP
echo / $SLASH
echo /home $HOME
echo /boot $BOOT
echo /boot $TMP
#Montage des partitions
echo Montage des partitions
mount $SLASH /mnt
mkdir /mnt/{home,boot,tmp}
mount $BOOT /mnt/boot
mount $HOME /mnt/home
mount $TMP /mnt/tmp
echo installation des groupe base et base-devel
pacstrap /mnt base base-devel grub
echo création du fstab 
genfstab -U -p /mnt >> /mnt/etc/fstab
echo Chroot de l environnement créer
arch-chroot /mnt
exit 0
P.S : j'aimerais savoir si on peux demander a l'utilisateur d'appuyer sur entré après un echo parce que pour le moment tout défile un peu vite
Vivre libre ou mourir
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [install] Script d'installation archlinux

Message par papajoke »

il faudrait surtout lire de la doc avant de coder; tu as bien lut le wiki avant d'installer arch :wink:
Guide avancé d'écriture des scripts Bash
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
KorteX39
Daikyu
Messages : 80
Inscription : mer. 12 mars 2014, 15:56

Re: [install] Script d'installation archlinux

Message par KorteX39 »

Comme je le precisais plus haut se script a surtout pour but de m'apprendre et il va s'ameliorer avec le temps. Ce n'est certainement pas quelque chose que je vais partager enfin pas dans une version aussi debutant.
Je vois plus cela comme un travaux pratique qui va evoluer vers un vrai script à part entière

EDIT : Je rajouterais que lire de la doc sans pratiquer cette doc c'est aller droit au mur donc oui je lis des pages et des pages de doc mais j'essaye d'y appliquer dans la mesure de mes capacitées actuelle au projet que je me suis fixé
Vivre libre ou mourir
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [install] Script d'installation archlinux (résolu)

Message par Moviuro »

Plop,

Code : Tout sélectionner

#!/usr/bin/env bash
C'est mieux (c'est une bonne habitude à prendre puisque sur BSD par exemple, bash est dans /usr/local/bin/bash

Code : Tout sélectionner

for i in $(ls <>)
est à bannir à cause du comportement flou de ls. bash fait tout seul le match de regexp:

Code : Tout sélectionner

for i in /dev/[hs]d[a-z][1-9]*; do ls -l "$i"; done
@papajoke : j'ai pas lu ton tuto, mais rien que pour le shebang, il est faux. il a certainement l'air complet, mais un truc faux dès le début, ça ne présage rien de bon.
EDIT: il doit dater de Mathusalem, ce tuto : il y a encore des backquotes dedans... c'est mal les backquotes...
@Kortex, il faut lire le bouquin de O'reilly: Learning the bash shell. amazon

Bon courage
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [install] Script d'installation archlinux (résolu)

Message par papajoke »

Moviuro a écrit :EDIT: il doit dater de Mathusalem, ce tuto
2000 :!:
c'est la traduction fr d'un livre : ABS
et c'est à ma connaissance le seul livre complet et libre en fr sur bash (Domaine Publique depuis 2014?)
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
avi3000
Chu Ko Nu
Messages : 404
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [install] Script d'installation archlinux (résolu)

Message par avi3000 »

Le poids des mots !!!

shebang or not shebang:
Ma archlinux bien à jour, contient 373 scripts dans /usr/bin. Sur ces 373 scripts, seulement 20 utilisent le programme env. Il faudra prévenir les mainteneurs de la distribution, qu'ils ont faux dans 353 scripts.

La portabilité c'est bien, mais pas toujours nécessaire.

Le "Mendel Cooper", comme bash, date effectivement de Mathusalem, mais il reste un des nombreux ouvrages de référence sur l'écriture de script bash. A ma connaissance, la version française est à jour à la version 4 de bash.
Je n'ai rien comme Madame O'reilly, mais je préfère utiliser les excellentes sources d'information que sont les sites communautaires tels que tdlp.org ou ses équivalents français.
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [install] Script d'installation archlinux (résolu)

Message par Moviuro »

Plop :)

Pour le shebang : https://stackoverflow.com/questions/733 ... 901#733901 Effectivement, c'est pas mortel, mais très surprenant puisque chez moi, chromium (!) utilise ledit mauvais shebang. (Je croyais à tort que ça avait aussi à voir avec l'environnement complet dans lequel le script se lançait : alias, fonctions, etc.)

Et je vais contribuer aux différents projets pour tout faire corriger ;)

++
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
avi3000
Chu Ko Nu
Messages : 404
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [install] Script d'installation archlinux (résolu)

Message par avi3000 »

c'est mal les backquotes ?
RTFM
Dernière modification par avi3000 le mar. 05 mai 2015, 20:55, modifié 2 fois.
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [install] Script d'installation archlinux (résolu)

Message par Moviuro »

avi3000 a écrit :RTFM
Command Substitution
Command substitution allows the output of a command to be substituted in place of the command name itself. Command substitution occurs when the command is enclosed as follows:

Code : Tout sélectionner

$(command)
:copain:
Les backquotes, c'est antique.
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
avi3000
Chu Ko Nu
Messages : 404
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [install] Script d'installation archlinux (résolu)

Message par avi3000 »

J'ai relu ce putain de manuel et refait des tests

Code : Tout sélectionner

/usr/lib/initcpio/busybox ash 
~ $ echo "<$(</etc/hostname)>"
<>
~ $ echo "<$(cat /etc/hostname)>"
<asus4570>
~ $ read z < /etc/hostname ;echo $z
asus4570
les backquotes, c'est pas beau
Répondre