[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22588: root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
From: |
Mark H Weaver |
Subject: |
bug#22588: root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY |
Date: |
Mon, 08 Feb 2016 12:52:49 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> Mark H Weaver <address@hidden> skribis:
>
>> address@hidden (Ludovic Courtès) writes:
>
> [...]
>
>>> Currently there’s no Bash in the initrd. Should we add one? Our
>>> ‘bash-static’ package takes 1.4 MiB (I don’t think we can make it
>>> smaller.)
>>
>> I'm not sure it would help much without also adding 'coreutils'.
>
> Good point.
>
>>> Another idea that comes to mind: what about providing a “shell” language
>>> in Guile? It would automatically tokenize what the user types in and
>>> convert it to (system* …), plus it would have a few built-in commands
>>> like ‘cd’ and ‘ls’.
>>
>> I like the idea of having something like this in Guile, but I'm not sure
>> we should rush to implement a half-baked solution.
>
> OTOH, hacking it is very tempting, like:
>
> scheme@(guile-user)> ,use (guix build bournish)
> scheme@(guile-user)> ,bournish
> Happy hacking with Bournish! To switch back, type `,L scheme'.
> bournish@(guile-user)> ls
> . gnu-dist.go r-build-system.go
> .. gnu-dist.scm r-build-system.scm
> activation.scm~ gnu-dist.scm~ relocate.scm~
> bournish.scm gnu.scm~ rpath.go
> bournish.scm~ graft.go rpath.scm
> cmake-build-system.go graft.scm rpath.scm~
> cmake-build-system.scm graft.scm~ ruby-build-system.go
> cvs.go graft.scm.115 ruby-build-system.scm
> cvs.scm graft.scm.bak ruby-build-system.scm.orig
> download.go gremlin.go ruby-build-system.scm.rej
> download.scm gremlin.scm store-copy.go
> download.scm~ gremlin.scm~ store-copy.scm
> download.scm.bak haskell-build-system.go store-copy.scm~
> emacs-build-system.go haskell-build-system.scm svn.go
> emacs-build-system.scm http.scm~ svn.scm
> emacs-utils.go install.scm~ syscalls.go
> emacs-utils.scm linux-initrd.scm~ syscalls.scm
> ftp.scm~ perl-build-system.go syscalls.scm~
> git.go perl-build-system.scm union.go
> git.scm perl-build-system.scm~ union.scm
> git.scm~ profile.go union.scm~
> glib-or-gtk-build-system.gprofile.scm~ url.scm~
> glib-or-gtk-build-system.sprofiles.go utils.go
> gnome-build-system.scm profiles.scm utils.scm
> gnome-build-system.scm~ profiles.scm~ utils.scm~
> gnu-build-system.go pull.go vm.scm~
> gnu-build-system.scm pull.scm waf-build-system.go
> gnu-build-system.scm~ pull.scm~ waf-build-system.scm
> gnu-build-system.scm.bak python-build-system.go
> gnu-cross-build.scm~ python-build-system.scm
> bournish@(guile-user)> cd /
> bournish@(guile-user)> pwd
> $2 = "/"
> bournish@(guile-user)> echo $PATH $LANGUAGE
> $3 =
> ("/home/ludo/soft/bin:/home/ludo/.opam/system/bin:/home/ludo/.guix-profile/bin:/home/ludo/.guix-profile/sbin:/run/setuid-programs:/run/current-system/profile/bin:/run/current-system/profile/sbin"
> "eo")
> bournish@(guile-user)> touch --version
> touch (GNU coreutils) 8.24
> Copyright © 2015 Free Software Foundation, Inc.
> Ĉi tiu estas libera programaro: vi rajtas ĝin ŝanĝi kaj redistribui.
> La ĝusta permesilo estas GPLv3+: GNU GPL versio 3 aŭ sekva;
> por la kompleta (angla) teksto vidu <http://gnu.org/licenses/gpl.html>.
> Ĉi tiu programaro ne garantiatas, ene de la limoj de la leĝo.
>
> Verkita de Paul Rubin, Arnold Robbins, Jim Kingdon,
> David MacKenzie kaj Randy Smith.
> $4 = 0
> bournish@(guile-user)> ,L scheme
> Happy hacking with Scheme! To switch back, type `,L bournish'.
>
> :-)
>
> The point is, if we can allow users to avoid typing in parentheses and
> long procedure names and quoted argument lists when all they want is to
> run fsck, we should do that.
>
>> When we have something decent along the lines of Scsh, then
>> definitely!
>
> Scsh makes it super easy to deal with Unix processes, redirections, and
> all that (it would be awesome to use it on the build side), but AFAIK it
> doesn’t try to provide a Bourne-like interface, which is what we need
> here.
>
> So, WDYT? :-)
Okay, I must admit that's a pretty great little hack, and a nice demo of
how easy it is to hack something together like this in Guile.
Let's do it :)
Mark
bug#22588: root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY, Ludovic Courtès, 2016/02/08