Automatizálnom kellett egy debootstrap-os/chroot-os Linux telepítés lépéseit, ami meg is történt, de az utolsó lépésnél, a grub-install
-nál elakadtam. A probléma, hogy bármit is próbáltam, a grub-install
mindenképpen visszakérdez a végrehajtásnál, hogy na, akkor most melyik eszközre menjen.A parancs: grub-install /dev/eszköz --target=i386-pc --efi-directory=/ --boot-directory=/boot
A kugli nem segített, a man
dettó. Kínomban megpróbáltam elébiggyeszteni, hogy echo "\n' + Self.logname + '\n" |
, hátha megeszi stdin-ről, de nem tette.
Van valakinek ötlete?
- 1271 megtekintés
Hozzászólások
yes | grub-install ... ?
A grub-installer Debian csomag postinst scriptjét és a grub-installer scriptet magát nézd meg, az szerintem nem kérdez vissza, debconf-ból veszi ki a zoxigént és felparaméterezve meghívja a grub-install parancsot.
- A hozzászóláshoz be kell jelentkezni
A yes
itt nem működik, mert nem az a kérdés, hogy igen, vagy nem, hanem, hogy /dev/xxx
. (Arról nem is beszélve, hogy menet közben még egy more
is odakerül, mert mielőtt megkérdezi, rizsázik egy sort.)
Thx a tippet, megnézem.
- A hozzászóláshoz be kell jelentkezni
(Jelzem a yes parancsnak megadható tetszőleges szöveg, amit a yes helyett ismételget - így: yes /dev/sda ; de ha már az echo | grub-install nem ment, akkor szerintem nyilván a yes | grub-install se fog.)
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Nem ment, mert rossz helyen keresgéltem.
- A hozzászóláshoz be kell jelentkezni
a jo oreg grub shell nem jatszik?
grub>
root(hd0,0)
setup(hd0)
uefi szerint?
- A hozzászóláshoz be kell jelentkezni
Azt script-ből hogyan?
- A hozzászóláshoz be kell jelentkezni
expect? here document?
- A hozzászóláshoz be kell jelentkezni
Akkor már azt lehet a grub-install
-ra is használni, nem?
spawn grub-install --target=i386-pc --efi-directory=/ --boot-directory=/boot /dev/sdb && expect "[More]" && send "\n" && expect "vice:" && send "/dev/sdb\n"
Valahogy így, nem?
- A hozzászóláshoz be kell jelentkezni
En inkabb irnek egy expect scriptet, mert az szebb, mint az osszefuzott parancsok. Meg igy nem tudom, hogy mukodik e. Igy meg sosem irtam expect-et.
De itt szerintem a HERE is megfelelo lenne
grub-install --target=i386-pc --efi-directory=/ --boot-directory=/boot /dev/sdb << EOF
/dev/sdb
EOF
Persze a fenti csak abban az esetben ha tenyleg "soremeles" + "device" + "soremeles" a kombo :D
- A hozzászóláshoz be kell jelentkezni
> Persze a fenti csak abban az esetben ha tenyleg "soremeles" + "device" + "soremeles" a kombo :D
Igen, mert először bejön a more
, mert hosszú a szöveg, aztán kéri az eszközt. Thx a tippet, kipróbálom.
- A hozzászóláshoz be kell jelentkezni
Mint kiderült rossz helyen keresgéltem.
- A hozzászóláshoz be kell jelentkezni
Nekem megy a full automatikus debootstrap chrootból.
Ami relevánsnak tűnik a kérdés szempontjából:
export DEBIAN_FRONTEND=noninteractive
export DISK=${DISK:-"/dev/sdb"}
grub-install --target x86_64-efi ${DISK} --efi-directory /boot --boot-directory=/boot --removable --recheck --bootloader-id=grub
- A hozzászóláshoz be kell jelentkezni
A debootstrap
nekem is. A grub-install
tesz fel kérdést, amit nem kéne.
Ezt a DEBIAN_FRONTEND
változót már többen is írták, csak nem tudom, hogyha nem tudja, hogy hova kell települnie és nem kap választ, akkor mit csinál?
- A hozzászóláshoz be kell jelentkezni
Nem értem neked miért kérdez ilyesmit. Melyik package-et telepíted?
Én ezt:
apt install -y linux-image-amd64 grub-efi-amd64
- A hozzászóláshoz be kell jelentkezni
apt-get -y --no-install-recommends install grub2-common grub-pc linux-image-686-pae
- A hozzászóláshoz be kell jelentkezni
Sajnos a DEBIAN_FRONTEND
nem működött... http://oscomp.hu/depot/grub-install.png
- A hozzászóláshoz be kell jelentkezni
Miután fejesjoco felhívta a figyelmemet arra, hogy az apt-get
dobja fel a kérdést, kipróbáltam arra is a DEBIAN_FRONTEND
-et:
export DEBIAN_FRONTEND=noninteractive && apt-get -y --no-install-recommends install grub-pc
grub-install --target=i386-' + mbt + ' --efi-directory=/ --boot-directory=/boot /dev/sdb
És így működött. Köszi neked is.
- A hozzászóláshoz be kell jelentkezni
Nem tudom, mennyit számít, de ha a /dev/eszköz
a végén lenne? Azaz:
grub-install --target=i386-pc --efi-directory=/ --boot-directory=/boot /dev/eszköz
A manual így írja, hogy előbb az opciók, majd utána az eszköz neve. Nem egy programmal találkoztam, ami érzékeny erre.
- A hozzászóláshoz be kell jelentkezni
Nekem legalábbis működik bár a felvetés jó :)
- A hozzászóláshoz be kell jelentkezni
Eredetileg úgy volt, nem ment úgy sem.
- A hozzászóláshoz be kell jelentkezni
A fenti képed alapján ("The grub-pc package is being upgraded") nem a grub-install tűnik problémának. Rögtön evvel kellett volna kezdeni...
A grub-pc deb csomagban a grub-pc/install_devices template tartalmazza ezt a szöveget.
Látszik az is, hogy a postinst script használja ezt. Ez a dpkg válasz adatbázisával dolgozik. Szerintem oda kell beletúrni, hogy ezt a kérdést ne tegye föl, előre add meg neki a válaszokat.
Ilyesmi: echo "set grub-pc/install_devices /dev/sda" | debconf-communicate
- A hozzászóláshoz be kell jelentkezni
Igazad van, köszi. Nem esett le, hogy a grub-pc csomag telepítése csinálta. Kiraktam külön apt-get
sorba és beszúrtam elé, amit mondtál, de erre hibát is dobott, hogy szerinte olyan opció nincs, utána meg hiányolt pár dolgot.
- A hozzászóláshoz be kell jelentkezni
Never mind, sikerült megoldani máshogy, köszi, hogy felhívtad rá a figyelmet.
- A hozzászóláshoz be kell jelentkezni