BSDInstall, (vielleicht) ein neuer Installer für FreeBSD

Yamagi

Possessed With Psi Powers
Teammitglied
Ich schrieb schon viele News zu Installationsprogrammen für FreeBSD. Die Vergangenheit sah viele Projekte, die einen Ersatz für das veraltete Sysinstall schaffen wollten, doch keines schaffte es jemals fertig zu werden. Finstall wurde vor erreichen der Beta-Phase aufgegeben, pc-bsdinstall erwies sich als Tool für ein reines FreeBSD als ungeeignet... Nun also auf ein Neues.

BSDInstall ist ein Installationsprogramm, was Nathan Whitehorn in den letzten Wochen und Monaten geschrieben hat, um FreeBSD komfortabel auf PowerPC-Hardware installieren zu können. Es orientiert sich lose an der Express-Installation von Sysinstall, ist jedoch von Grund auf neu implementiert. Dabei ist BSDInstall modular aufgebaut und besteht zum größten Teil aus Shell-Scripten. Dies macht es leicht zu warten, einfach um neue Funktionen zu erweitern und auch sehr effizient scriptbar.

Neue Funktionen gegenüber Sysinstall sind unter anderem:
- Unterstützung für GPT-Partitionen
- Installationen auf mehrere Festplatten
- Kann Jails installieren
- Arbeitet brauchbar mit PXE zusammen
- Kann aus dem laufenden System heraus in ein Image installieren

Wichtig ist sicherlich noch zu erwähnen, dass die Installationsmedien nun Live-Medien sind, wie man es zum Beispiel aus der Linuxwelt kennt. Dies erlaubt es sie auch zur komfortablen Systemreparatur oder zu manuellen Installationen zu nutzen. Auch kann man - sofern der Textmode ausreichend ist - FreeBSD antesten.

Ich schreibe dies als News, da N. Whitehorn plant BSDInstall in den nächsten Tagen in HEAD zu committen. Sysinstall soll es denn einige Wochen später ersetzen. Geschieht dies so, würde FreeBSD 9.0 mit einem neuen Installationsprogramm erscheinen.

Die Ankündigung:
Code:
 Date: Fri, 14 Jan 2011 19:26:43                                               
  From: Nathan Whitehorn <nwhitehorn@freebsd.org>                               
  To: freebsd-sysinstall@freebsd.org,                                           
      freebsd-current Current <freebsd-current@freebsd.org>                     
  Cc: freebsd-arch@FreeBSD.org                                                  
  Subject: BSDInstall: merging to HEAD                                          
                                                                                
  As those of you who have been reading freebsd-sysinstall and freebsd-arch     
  know, I have been working for a few weeks on a lightweight new installer      
  named 'bsdinstall'. This is designed to replace sysinstall for the 9.0        
  release.                                                                      
                                                                                
  After two weeks of testing and bug fixes on the sysinstall list, I believe    
  this now has all required functionality and is ready to be merged into the    
  main source tree. I would like to do this on Tuesday, 18 January. Switching   
  this to be the default installer would happen a few weeks after that,         
  pending discussion on release formats with the release engineering team.      
  This should provide a sufficient testing period before 9.0 and allow a        
  maximal number of bugs to be discovered and solved before the release is      
  shipped.                                                                      
                                                                                
  Demo ISO for i386:                                                            
  http://people.freebsd.org/~nwhitehorn/bsdinstall-i386-20110114.iso.bz2        
  SVN repository: svn://svn.freebsd.org/base/user/nwhitehorn/bsdinstall         
  Wiki page: http://wiki.freebsd.org/BSDInstall                                 
                                                                                
  Goals                                                                         
  -----                                                                         
  The primary goal of BSDInstall is to provide an easily extensible installer   
  without the limitations of sysinstall, in order to allow more modern          
  installations of FreeBSD. This means that it should have additional features  
  to support modern setups, but simultaneously frees us to remove complicating  
  features of sysinstall like making sure everything fits in floppy disk-sized  
  chunks.                                                                       
                                                                                
  New Features:                                                                 
  - Allows installation onto GPT disks on x86 systems                           
  - Can do installations spanning multiple disks                                
  - Allows installation into jails                                              
  - Eases PXE installation                                                      
  - Virtualization friendly: can install from a live system onto disk           
    images                                                                      
  - Works on PowerPC                                                            
  - Streamlined system installation                                             
  - More flexible scripting                                                     
  - Easily tweakable                                                            
  - All install CDs are live CDs                                                
                                                                                
  Architecture                                                                  
  ------------                                                                  
  BSDInstall is a set of tools that are called in sequence by a master script.  
  These tools are, for example, the partition editor, the thing that fetches    
  the distributions from the network, the thing that untars them, etc. Since    
  these are just called in sequence from a shell script, a scripted             
  installation can easily replace them with other things, (e.g. hard-coded      
  gpart commands), leave steps out, add new ones, or interleave additional      
  system modifications.                                                         
                                                                                
  Status                                                                        
  ------                                                                        
  This provides functionality most similar to the existing sysinstall           
  'Express' track. It installs working, bootable systems you can ssh into       
  immediately after reboot on i386, amd64, sparc64, powerpc, and powerpc64.     
  There is untested support for pc98. The final architecture on which we use    
  sysinstall, ia64, is currently unsupported, because I don't know how to set   
  up booting on those systems -- patches to solve this are very much welcome.   
                                                                                
  There are still some missing features that I would like to see in the         
  release, but these do not significantly impact the functionality of the       
  installer. Some will be addressed before merging to HEAD, in particular the   
  lack of a man page for bsdinstall. Others, like configuration of wireless     
  networking and ZFS installation, can happen between merge and release. The    
  test ISOs are also lacking a ports tree at the moment, which is a statement   
  about the slow upload speed of my DSL line and not about the final layout of  
  releases.                                                                     

  Please send any questions, comments, or patches you may have, and please be   
  aware when replying that this email has been cross-posted to three lists.     
  Technical discussion (bug reports, for instance) should be directed to the    
  freebsd-sysinstall list only. Most other discussion belongs on -sysinstall    
  and -current.                                                                 
  -Nathan
 
Jein. Nun ist schon die große Diskussion im Gang, ob man nicht doch noch mit Sysinstall lebe soll, bis txt-pcsysinstall - ein Text-Frontend für den PC-BSD Installer - fertig ist... Ich finde allerdings, man sollte nun Nägeln mit Köpfen machen.
 
Wenn die eine größere Benutzerbasis schaffen wollen, dann bitte mit ner ordentlichen GUI.
Auch Admins dürfen mal per Mausklick arbeiten :)
 
Ein Installer mit einer GUI? Etwas grafisches ohne X auf den Schirm zu bringen, ist schon manchmal, wenn auch heute sehr selten, bei Linux ein einziger Unfall je nach Hardware. Unter FreeBSD geräts hingegen zum Glücksspiel, ich sehe da z.B. PC-BSD als Beispiel, die abseits vom Hype einen ganzen Rucksack voll Probleme haben.

Lieber jetzt eine Lösung die funktioniert und wartbar ist und später alternativ eine GUI, die dann nach einigen Jahren auch die Kinderkrankheiten ausgemerzt bekommt.
 
Naja, der grafische installer von ubuntu z.b. läuft ziemlich gut und ist wirklich eine echte Bereicherung.
 
Das FreeBSD != Linux spare ich mir jetzt in puncto was überhaupt möglich ist. Ich erwähnte ja oben die Unterschiede. Aber mal davon abgesehen verwendet das Gros der Leute, die ich kenne, Ubuntu LTS mit dem alternativen Installer für administrative Zwecke. Das eine ist halt was für den Desktop, die komplette Kontrolle gibts damit jedoch nicht.

Damit man mich nicht falsch versteht, PC-BSD kann eine großartige Sache sein für ein gewisses Klientel. Gar keine Frage, aber es ist wie Ubuntu/Suse/Fedora eine Desktop-Baustelle. Nur mit dem Unterschied, daß dieses PC-BSD um Längen voraus sind.

Wenn ich mir diverse Tests anschaue bzw. die Aufrufe dazu, sieht bei FreeBSD ziemlich mau aus und bei PC-BSD vergessen wir es lieber gleich. Will heißen, für hochgesteckte Ziele brauchts dann doch mehr als den Glauben daran. In der Praxis: fähige Entwickler, viele davon und natürlich Testwillige en masse. Das ist auch der primäre Unterschied zwischen Linux und FreeBSD. Letzteres muß sich auf essentielle Dinge konzentrieren.
 
Das ist der aktuelle stand:

Code:
Date: Tue, 18 Jan 2011 11:38:03 -0600                                                                           
From: Nathan Whitehorn <nwhitehorn@freebsd.org>                                                                 
To: freebsd-arch@freebsd.org, freebsd-current@freebsd.org,                                                      
        freebsd-sysinstall@freebsd.org                                   
Cc:                                                                                                             
Subject: [Bulk] FreeBSD Installer Roadmap                                                                  

After some discussion with M. Warner Losh and Josh Paetzel of iX                                                                               
Systems, we've come up with the following roadmap for an installer for                                                                         
9.0. Over the next month, we intend to try to adapt bsdinstall as the                                                                          
front-end for the more featureful, but lacking a terminal-compatible                                                                           
user interface, pc-sysinstall. This implies that the user interface                                                                            
and installation flow for the hybrid installer will be extremely                                                                               
similar to what is currently available in bsdinstall, so please                                                                                
continue sending feedback and bug reports on it. What will be                                                                                  
different is the backend code, which will allow use of additional                                                                              
features not currently present in bsdinstall, such as ZFS                                                                                      
installation.                                                                                                                                  
                                                                                                                                               
At the end of that month period, we'll see how far we've gotten, and                                                                           
plan to merge either a successful hybridization or to merge bsdinstall                                                                         
with its own backend, which I will continue to maintain in the                                                                                 
interim. At this point, we plan to integrate whichever installer is                                                                            
merged with the release infrastructure so that it becomes the default                                                                          
installation environment presented on snapshot ISOs. If we have have                                                                           
not completed the hybrid installer at this point, work on                                                                                      
hybridization will still continue after this. Since the interface                                                                              
presented to user will be extremely similar, a bsdinstall ->                                                                                   
pc-bsdinstall transition can happen with a minimum of user                                                                                     
astonishment, or even awareness, at any point in the future, either                                                                            
before or after the 9.0 release.                                                                                                               
                                                                                                                                               
This plan ensures that we have a minimum of three months of testing of                                                                         
the new installer on snapshot media before the 9.0 release, which                                                                              
should ensure a minimum of bugs. I would also like to point out that                                                                           
there are no roads in this map that end up with us having sysinstall                                                                           
as the default installer past the 18th of February. After 15 years of                                                                          
sysinstall being "greatly in need of death", it will finally be time                                                                           
to retire it.                                                                                                                                  
                                                                                                                                               
Thanks to Warner Losh and Josh Paetzel for excellent discussions.                                                                              
Please continue to send any comments on this plan, bug reports or                                                                              
feature requests for bsdinstall or pc-sysinstall, and suggestions for                                                                          
the installation process.                                                                                                                      
-Nathan
 
Sehr gut. Eigentlich ist es auch egal wie ein neuer Installer aussehen wird, Hauptsache sysinstall stirbt endlich. Auch nach einer Reihe Verbesserungen in 8.2 ist das Ding einfach überholte Technik. :)
 
Hm, also wenn ich das richtig verstanden habe:
  • es gibt zwei Alternativen pc-bsdinstall und bsdinstall
  • Die haben nichts miteinander zu tun, der ähnliche Name wurde nur gewählt um uns zu verwirren.
  • pc-bsdinstall kann mehr (z.B. auf ZFS installieren), aber nur durch GUI
  • bsdinstall kann weniger, aber dafür von Konsole (eigentlich ncurses oder plain?)
  • pc-bsdinstall ist schon in backend und frontend unterteilt, aber es gibt kein text-frontend
  • auf der anderen seite versucht man bsdinstall zu einem pc-bsdinstall frontend umzubiegen
  • am Ende wird gibt es vielleicht ein text-frontend zu pc-bsdinstall, ein auf das backend von pc-bsdinstall umgefrickeltes bsdinstall, und einfach das jetzige bsdinstall
  • dann wird ne (dreiseitige) Münze geworfen
:ugly:

Stimmt das soweit? Also ich wäre ja für etwas mit Backend, zudem es unterschiedliche frontends geben kann (plain konsole, ncurses, Qt, html...)…
 
Jein. Ich versuche es mal:

1. Am Anfang war Sysinstall, und es war gut. Leider blieb die Zeit nicht stehen, die Dinge veränderten sich. Sysinstall ist heute ein elendes Gefrickel aus antikem C-Code, es hat durch schlecht eingebaute Features Bugs und es bildet diverse Funktionen des modernen FreeBSD nicht ab.

2. Man wollte Sysinstall ersetzen. Daher gab es mehrere Projekte einen anderen neuen Installer zu schreiben, das bekannteste ist dort sicher finstall gewesen. Leider kam keines dieser Projekte über die Alpha-Phase hinaus. Das mag auch daran gelegen haben, dass sie alle Dinge brauchten, die nicht zum Basissystem gehörten.

3. Bruce Crane kam und begann Sysinstall zu überarbeiten. Diese neue Version war schon Teil in 8.0, mit 8.2 kommt nun noch eine weitere Iteration. Sie behebt die gröbsten Bugs und macht das Ding verständlicher, der Funktionsumfang steigt aber nicht. Es wird deutlich, dass Sysinstall nicht mehr zu retten ist.

4. PC-BSD entwickelt für Version 8.0 pc-sysinstall. Es orientiert sich sehr am "Debian Installer". pc-sysinstall ist selbst lediglich ein Script-Parser. Ein Frontend generiert aus Nutzereingaben dies Script, pc-sysinstall führt es aus und installiert damit das System. Diese Architektur ist sehr praktisch, denn sie entkoppelt das Frontend von der eigentlichen Logik. Sie ermöglicht auch sehr einfach vollautomatische Installationen, die mit Sysinstall echt widerlich sind.

5. pc-sysinstall wird auf FreeBSD angepasst und importiert. Allerdings erst einmal nur das Backend, ein neues Frontend soll entwickelt werden. Dieses ist auf libdialog basiert, also komplett im Textmodus. Genauso wie Sysinstall. Ein GUI-Frontend wird nie näher in Erwägung gezogen.

6. FreeBSD 9.0 kommt näher und gerade die FreeBSD/PowerPC-Entwickler wollen Sysinstall los werden, da es auf ihrer Plattform nicht funktioniert, aber ein Installer Voraussetzung für die Beförderung zur TIER-1 Plattform (also vollständigen Unterstützung) ist. pc-sysinstall ist nach wie vor nur das Backend und es ist sehr x86-lastig. Daher scheibt Nathan Whitehorn bsdinstall. Sozusagen ein einfaches Shellscript, was die Aufgabe erfüllen kann. Er schlägt vor dies zu importieren und sysinstall damit abzulösen.

7. Die pc-sysinstall Jungs protestieren. Man einigt sich darauf, pc-sysinstall generisch zu machen, d.h. von x86 zu lösen. bsdinstall - was ja nun vorhanden ist - wird zu einem Text-Frontend für pc-sysinstall umgeschrieben. Am 18. Februar schaut man, ob die Kombination "pc-sysinstall + bsdinstall als frontend" Sysinstall ersetzen kann. Wenn ja, importiert man es. Wenn nein wird das bsdinstall ohne pc-sysinstall importiert. Zu einem späteren Zeitpunkt würde man dann auf die erste Variante wechseln.

Wenn das alles so funktioniert, haben wir in einem Monat einen neuen Installer. Wenn die Sache mit pc-sysinstall klappt, hat er auch eine Frontend-Backend-Architektur. :)
 
Dachte ich mir, dass das nichts wird mit dem PC-BSD Backend - hat ja vorher auch nicht geklappt.

Ob das jetzt erst mal besser oder schlechter wird ist ja erst einmal egal. Hauptsache die Sache kommt in Bewegung.
 
Das pc-sysinstall Backend soll meines Wissens nach schon noch kommen, aber eben nicht sofort... Muss man mal sehen. Mein Gefühl ist da eher durchwachsen. PC-BSD ist halt doch sehr auf i386 und amd64 fixiert.
 
Das pc-sysinstall Backend soll meines Wissens nach schon noch kommen, aber eben nicht sofort... Muss man mal sehen. Mein Gefühl ist da eher durchwachsen. PC-BSD ist halt doch sehr auf i386 und amd64 fixiert.

Kris Moore hat eine Menge guter Ideen und ist auch motiviert, allerdings wird da oft genug auf Oberfläche getrimmt und halbgare Lösungen unter der Haube in Kauf genommen.
 
Zurück
Oben