[Eisfair_dev] Installer Exit verbessern

Thomas Bork tom at eisfair.org
Mo Jun 1 04:13:26 CEST 2020


Am 01.06.2020 um 02:48 schrieb Kay Martinen:

>>> Statt "install on Disk xyz Y/N" besser "Install on Disk xyz OR Exit?"
>> Wofür soll denn in diesem Fall y oder n stehen, für install oder exit?
> Yes für Install ist doch logisch, nur das No führt in die Sackgasse und

Logisch ist anders. Wenn ich frage

Schwarz ODER weiss?

ist eine logische Antwort in keinem Fall 'y', da das 'y' sowohl für 
schwarz als auch weiss stehen kann. Das 'n' ebenfalls.

> zum Reboot. Und das meine ich. Install on Disk xyz mit No beantworten
> sollte die Möglichkeit der Neuauswahl bieten. Tut es aber nicht.
>> Das verwirrt doch noch viel mehr. Ausserdem sehe ich diese Frage in
>> unserem Installer nicht - siehe unten.
> Wann hast du den das letzte mal in einer VM gestartet? Ich sehe die
> frage dort so.

Ich habe Dir extra die Fragen aus unserem Installer herauskopiert. Dazu 
muss ich keinen Installer in einer VM ausführen.

>> Das Verhalten im Installer richtet sich danach, welche Platten mit dem
>> angegebenen Treiber gefunden wurden, ob Linux-Partitionen vorhanden
>> sind, ob diese beibehalten werden sollen, wie man die Fragen dabei
>> beantwortet und ob man ein Raid einrichten möchte.
>> Du meinst anscheinend den Fall, dass keine Linux-Partitionen gefunden
>> wurden. Davor kommt aber als erste Frage:
> Nein, ich meine den Normalfall das etwas gefunden wird. Aber man kann ja
> die größe von root festlegen, aber nur ob man data haben will oder
> nicht. Und wenn nicht wird dennoch aller Platz belegt. Soll ich das
> anlegen von data jetzt als einen work-around ansehen um den platz dann
> selbst frei vergeben zu können - nach der Installation?

Wie Du das ansiehst, ist ganz Dir überlassen. Wenn Du sinnvolle 
Möglichkeiten siehst, die Skripte im Installer zu verbessern, dann 
schicke mir Deine Änderungen zu.

>> Using $disk for installation, ok
> Da kommt bei mir IMHO Y/N

Na dann komplett mit Code:

if [ -z "${_raid_level}" ]
then
     ask "Using $disk for installation, ok"
     if [ $a = n ]
     then
         while [ 1 ]
         do
             echo
             disk=$disk_other
             echo -e "Disk to use [$disk]\c"
             read a
             case "$a" in
             "")
                 break
                 ;;
 
sda|sdb|sdc|sdd|sde|sdf|sdg|c0d0|c0d1|c0d2|c0d3|c0d4|c0d5|c0d6|c0d7)
                 eval x='$'$a
                 if [ "$x" != "disk" ]
                 then
                     colecho "$a is no disk, try again!" br x br
                 else
                     if [ $cpqscsi_found = true ]
                     then
                         disk=$cpqprefix/$a
                     else
                         disk=$a
                     fi
                     break
                 fi
                 ;;
             *)
                 colecho "$disk would be a correct answer, try again!" 
br x br
                 ;;
             esac
         done
     fi
     echo
fi

Wobei ask genau das macht:

ask ()
{
     while [ 1 ]
     do
         echo -e "$1 (y/n)? \c"
         read a
         case "$a" in
         z | zes | y | yes)  a=y; break;;
                    n | no)  a=n; break;;
                         *)  colecho "Please answer y(es) or n(o)" br x br;;
         esac
     done
}

Es gibt u.a. zusätzlich " (y/n)? " mit aus.

>> Verneint man das, wird man zur Eingabe der korrekten Platte
>> aufgefordert, wobei (wenn vorhanden) eine andere erkannte Platte
>> vorgegeben wird:
> Habe ich hier anders erlebt. Da kam keine Neuauswahl sondern blankes
> "Sorry, Exit"

Siehe Code oben.
Lediglich wenn es gar keine weitere erkannte Platte gibt und man bei

echo -e "Disk to use [$disk]\c"

nichts eingibt, kann das passieren. Es gibt dann schlicht keine weitere 
sinnvolle Möglichkeit.

> Die platte schon. Aber nicht die Platzbelegung darauf.
>> Es wird in diesem Fall auch immer die komplette Platte von eisfair
>> verwendet. Wenn Du das ablehnst gibt es ein exit.
> Was z.b. die Wartungs/Reparatur/Diagnose-Partitionen verschiedener
> Laptops oder Desktops div. Hersteller (BTDT HP, Compaq) mit weg putzen
> würde und das muß weder zwangsweise sein noch ist es nötig das Eisfair
> allein und IMMER das einzig Bootfähige System auf dem Gerät bliebe.
> Alles danach muß wegen dieses Selbstverständnisses also manuell rein
> geklöppelt werden, verstehe ich das so in etwa richtig?

eisfair ist überhaupt nicht darauf eingerichtet, andere Systeme zu 
booten. Wenn Du in der Lage bist, das und die Installer-Skripte sinnvoll 
zu ändern:

Schicke mir Deine Änderungen zu.

> Ich störe mich unter anderem an der Un-logik des Satzes oben.
> Wenn ich sagen würde "Darf ich dein Komplettes Brot von dir haben Y/N"
> dann wäre bei Nein die nächste Logische Alternative "dann wenigstens
> einen Teil davon?" aber diese gibt es nicht. Sondern den Rausschmiß zum
> Exit und Reboot. Ich finde das sachlich nicht korrekt und wünschte mir
> darum eine Verbesserung.

Der Satz

"eisfair installation on complete /dev/$disk, ok (y/n)?"

ist in meinen Augen der einzig logische:
Da eisfair nicht darauf vorbereitet ist, andere Systeme zu booten oder 
weniger als die gesamte Platte zu benutzen, muss es einen exit geben, 
wenn der Anwender das verneint.

-- 
der tom
[eisfair-team]


Mehr Informationen über die Mailingliste Eisfair_dev