Re: some failures in sysinst - fix attached

Julian Djamil Fagir <[email protected]>
Newsgroups gmane.os.netbsd.devel.installation
Message-ID <20120519203310.4c8b6e2c@adolfputzen>
Hi,

> > Then next screen shows configuration choices "a: Configure network" 
> > through "j: Enable mdnsd".  Then 6 junk error lines overwriting it 
> > (white text on black where other menu is white text on blue):  No such 
> > file ... and ... Could not open /targetroot/tmp/checkrc.sh for writing: 
> > No directory.  (I can press Ctrl-L but regular users would be scared.)
> You should never have gotten there. This bug could have been fixed along
> with install/12020.
> I will recheck that fix I pasted and maybe eventually commit it.
the attached patch should fix this issue, at least it did for me.
It changes the return codes such that now find_disks() returns the right
codes. Plus, it asks when a bad fs was found whether the installer should
really continue (and offers to do so), this is btw a fix for install/12020.

Regards, Julian
sysinst.1.diff (text/x-patch, 5.3 KB)
Index: disks.c
===================================================================
RCS file: /cvsroot/src/distrib/utils/sysinst/disks.c,v
retrieving revision 1.123
diff -u -r1.123 disks.c
--- disks.c	9 Jan 2012 01:51:47 -0000	1.123
+++ disks.c	19 May 2012 18:20:29 -0000
@@ -805,8 +805,12 @@
 		return error;
 
 	error = target_mount("", list[0].u.s_val, ' '-'a', list[1].u.s_val);
-	if (error != 0)
-		return error;
+	if (error != 0) {
+		msg_display(MSG_mount_failed, list[0].u.s_val);
+		process_menu(MENU_noyes, NULL);
+		if (!yesno)
+			return error;
+	}
 	return 0;
 }
 
@@ -854,7 +858,9 @@
 	free(prog);
 	if (error != 0) {
 		msg_display(MSG_badfs, disk, ptn, error);
-		process_menu(MENU_ok, NULL);
+		process_menu(MENU_noyes, NULL);
+		if (yesno)
+			error = 0;
 		/* XXX at this point maybe we should run a full fsck? */
 	}
 	return error;
@@ -966,7 +972,7 @@
 	else {
 		error = mount_root();
 		if (error != 0 && error != EBUSY)
-			return 0;
+			return -1;
 	}
 
 	/* Check the target /etc/fstab exists before trying to parse it. */
@@ -974,7 +980,7 @@
 	    target_file_exists_p("/etc/fstab") == 0) {
 		msg_display(MSG_noetcfstab, diskdev);
 		process_menu(MENU_ok, NULL);
-		return 0;
+		return -1;
 	}
 
 
@@ -984,7 +990,7 @@
 		/* error ! */
 		msg_display(MSG_badetcfstab, diskdev);
 		process_menu(MENU_ok, NULL);
-		return 0;
+		return -1;
 	}
 	error = walk(fstab, (size_t)fstabsize, fstabbuf, numfstabbuf);
 	free(fstab);
Index: msg.mi.de
===================================================================
RCS file: /cvsroot/src/distrib/utils/sysinst/msg.mi.de,v
retrieving revision 1.67
diff -u -r1.67 msg.mi.de
--- msg.mi.de	30 Apr 2012 19:49:26 -0000	1.67
+++ msg.mi.de	19 May 2012 18:20:31 -0000
@@ -124,6 +124,9 @@
 überschrieben werden!)
 }
 
+message mount_failed
+{Versuch, %s zu mounten ist fehlgeschlagen. Fortfahren?
+}
 
 message nodisk
 {Ich kann keine für NetBSD nutzbaren Festplatten finden.
@@ -711,9 +714,9 @@
 
 message badfs
 {Das Dateisystem auf /dev/%s%c scheint kein BSD-Dateisystem zu sein,
-die Prüfung des Dateisystems (fsck) ist fehlgeschlagen.
+die Prüfung des Dateisystems (fsck) ist fehlgeschlagen (Fehler %d).
 
-Die Aktualisierung wird abgebrochen. (Fehlernummer %d.)
+Die Aktualisierung trotzdem fortsetzen?
 }
 
 message rootmissing
Index: msg.mi.en
===================================================================
RCS file: /cvsroot/src/distrib/utils/sysinst/msg.mi.en,v
retrieving revision 1.172
diff -u -r1.172 msg.mi.en
--- msg.mi.en	6 Apr 2012 23:48:53 -0000	1.172
+++ msg.mi.en	19 May 2012 18:20:32 -0000
@@ -117,6 +117,9 @@
 disks.)
 }
 
+message mount_failed
+{Mounting %s failed. Continue?
+}
 
 message nodisk
 {I can not find any hard disks for use by NetBSD.  You will be
@@ -680,7 +683,7 @@
 
 message badfs
 {It appears that /dev/%s%c is not a BSD file system or the fsck was
-not successful.  The upgrade has been aborted.  (Error number %d.)
+not successful.  Try mounting it anyway?  (Error number %d.)
 }
 
 message rootmissing
Index: msg.mi.es
===================================================================
RCS file: /cvsroot/src/distrib/utils/sysinst/msg.mi.es,v
retrieving revision 1.43
diff -u -r1.43 msg.mi.es
--- msg.mi.es	6 Apr 2012 23:48:53 -0000	1.43
+++ msg.mi.es	19 May 2012 18:20:32 -0000
@@ -124,6 +124,9 @@
 sus discos.)
 }
 
+message mount_failed
+{Mounting %s failed. Continue?
+}
 
 message nodisk
 {No se ha podido encontrar ningún disco duro para ser usado por NetBSD.
@@ -701,7 +704,7 @@
 
 message badfs
 {Parece que /dev/%s%c no es un sistema de archivos BSD o el fsck no ha sido
-correcto.  La actualización ha sido interrumpida.  (Error número %d.)
+correcto.  ¿Continuar?  (Error número %d.)
 }
 
 message rootmissing
Index: msg.mi.fr
===================================================================
RCS file: /cvsroot/src/distrib/utils/sysinst/msg.mi.fr,v
retrieving revision 1.126
diff -u -r1.126 msg.mi.fr
--- msg.mi.fr	8 Apr 2012 03:11:14 -0000	1.126
+++ msg.mi.fr	19 May 2012 18:20:32 -0000
@@ -127,6 +127,10 @@
 modifier vos disques).
 }
 
+message mount_failed
+{Le montage du système de fichiers %s a échoué.  Continuer ?
+}
+
 message nodisk
 {Aucun disque utilisable par NetBSD n'a été trouvé.
 Retour au menu précédent.
@@ -748,9 +752,9 @@
 message badfs
 {
 /dev/%s%c ne semble pas être un système de fichiers BSD, ou
-la vérification de son intégrité par fsck a échoué.
+la vérification de son intégrité par fsck a échoué, code d'erreur %d.
 
-Interruption de la procédure de mise à jour, code d'erreur %d.
+Souhaitez-vous continuer mise à jour?
 }
 
 message rootmissing
Index: msg.mi.pl
===================================================================
RCS file: /cvsroot/src/distrib/utils/sysinst/msg.mi.pl,v
retrieving revision 1.83
diff -u -r1.83 msg.mi.pl
--- msg.mi.pl	6 Apr 2012 23:48:53 -0000	1.83
+++ msg.mi.pl	19 May 2012 18:20:32 -0000
@@ -121,6 +121,10 @@
 twoich dyskach.)
 }
 
+message mount_failed
+{Mounting %s failed. Continue?
+}
+/* XXX: Translate. */
 
 message nodisk
 {Nie moge znalezc zadnych twardych dyskow do uzycia z NetBSD. Zostaniesz
@@ -675,6 +679,10 @@
 {Tworzenie plikow urzadzen ...
 }
 
+/* XXX: Translate:
+* -not successful.  The upgrade has been aborted.  (Error number %d.)
+* +not successful (Error number %d.). Try mounting it anyway?
+*/
 message badfs
 {Wyglada na to, ze /dev/%s%c nie jest systemem plikow BSD albo nie powiodlo sie
 jego sprawdzenie. Aktualizacja zostala przerwana. (Blad numer %d.)
signature.asc (application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAk+352YACgkQc7h7cu1Hpp4yEACgiqUEfA5vVTKkOlkdkoXTTZ7J
m8wAmweKa4ErWdm+sHCFTB3egX9cy0K1
=kB7D
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.