Skocz do zawartości

Podłączenie loadera GRUB4DOS pod menu startowe systemu


Rekomendowane odpowiedzi

W artykule "Podłączenie loadera GRUB4DOS pod menu startowe systemu" opisałeś jak do Windowsa dodać 2 system. Rozpakowuje pliki pakietu mini (ten z ISO niestety znikł z Rapida a na tym 2 serwerze jest uszkodzony). Bootuje sie z pena i uruchamiam w konsoli skrypt (Pliki sa na penie pod literka E) . Efekt to "Nie znaleziono pliku rozruchowego".

 

Mozna prosic o podpowiedz ?

Pozdrawiam

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Dodanie samego Guba jest dość proste, nie chciałbym tutaj dublować tego co jest zawarte w dokumentacji czy choćby w tutorialu pod adresem:

http://diddy.boot-land.net/grub4dos/Grub4dos.htm

 

Warto też zaznaczyć, że mimo pozornego zastoju na stronie oficjalnej projektu jest on ciągle rozwijany i najnowsze wersje (o statucie bety) pojawiają się dość często, warto po nie sięgnąć bo zmian w stosunku do ostatniej wersji stabilnej jest sporo.

Bety znajdziesz pod adresem:

http://code.google.com/p/grub4dos-chenall/downloads/list

 

Może napisz co chcesz konkretnie uzyskać to postaram się pomóc.

 

ps

Ja mam pena urządzonego w ten sposób, że normalnie odpala się domyślne WinPE (z instalatorami) natomiast jeśli przy starcie z USB przytrzymam wciśnięty klawisz F1 to odpala się menu grub4dos a z F2 odpala się syslinux.

Dodatkowo poprzez edycję bootmgr uzyskuję możliwość odpalania alternatywnych wersji BCD, dzięki temu mogę odpalać z poziomu gruba kilka WinPE bez przechodzenia przez podwójne menu (każde bcd odpala tylko jedną pozycję).

 

pzdr

Odnośnik do komentarza

Ja swojego Vertexa flashuję z poziomu PartedMagic, ma fajne narzędzia na wypadek potrzeby odmontowania takiego napędu.

Sam fwupd siedzi oczywiście na penie.

 

Z testerami pamięci nie ma większych problemów, choć bywają płyty główne na których np memtest głupieje jeżeli jest odpalany z pena i to nieważne w jaki sposób (moduł, image flopa ,image cd itp.) natomiast działają bez problemu z samej płyty ale generalnie nie ma problemu z odpaleniem, działa też goldmem (bardzo dobry ale niestety komercyjny), pod ręką lubię mieć też KONBOOT (tool pozwala się zalogować do dowolnego windowsa i wielu linuxów z pustym hasłem, niezależnie od ustawień systemu).

 

Wiele takich narzędzi ładujemy jako image dyskietki, typowe wpisy wyglądają tak:

 

title KONBOOT v1.1
map --mem /images/konfloppy.gz (fd0)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Gold Memory
map --mem /images/GoldMemory.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

 

Pierwszy zamienia kolejność napędów (pen w grubie staje się z automatu najczęściej pierwszym napędem co czasami sprawia problem dlatego powyższy przykład).

 

Antywirusy live robią mały miszmasz na penie bo większość wymaga pewnego sztywnego układu katalogów, często jakiś dodatkowych plików w głównym drzewie ale pomijając kwestie estetyczne większość działa bez problemu (niektóre wymagają zapisu na penie co może stwarzać problemy), który wybierzesz to rzecz gustu.

 

pzdr

Odnośnik do komentarza

Witam

Zainstalowałem tego tego gruba recznie i tym skryptem który jest w dokumentacji.

 

@echo off
Setlocal

::Set path to bcdedit.exe (e.g. C:\Windows\System32\bcdedit.exe)
Set BCDEDIT=H:\boot\bcdedit.exe

::Set path to BCD Store (e.g. C:\boot\BCD)
Set STORE=H:\boot\BCD

for /f "tokens=3" %%A in ('%BCDEDIT% /store %STORE% /create /d "Start GRUB4DOS" /application bootsector') do set guid=%%A
%BCDEDIT% /store %STORE% /set %guid% device boot
%BCDEDIT% /store %STORE% /set %guid% path \grldr.mbr
%BCDEDIT% /store %STORE% /displayorder %guid% /addlast

endlocal
pause
exit

 

Skrypt się wykonuje poprawnie niestety (komunikat ok) niestety przy boot-owaniu i F5 nic ciekawego sie nie wyświetla. Dodatkowo jak zerkam narzędziem EasyBCD to widzę tylko jeden wpis - Windows. Tak jakby się te wprowadzone zmiany nie zapisywały. Partycja jest NTFS. Nie wygooglowałem jednoznacznej opinii czy musi być FAT. Musi ?

 

Pozdrawiam

Odnośnik do komentarza

Zacytuję sam siebie z pewnego blog-a:

 

Witam

Czy zawsze trzecie słowo?

 

Mam sporo różnych skryptów do BCD i guid jest w nich ustawiony na dwójkę.

A oto przykład wprowadzenia komendy bezpośrednio:

http://img697.imageshack.us/img697/576/obrazzeschowka.png

 

Jak widać - guid jest drugi.

Trójka jest jak najbardziej prawidłowa ale w systemie z językiem angielskim (ew bez bcdedit.exe.mui):

http://img836.imageshack.us/img836/9315/obrazzeschowka1.png

 

Skoro ten sposób nie jest "language independent" to trzeba by do skryptu wprowadzić sprawdzanie wersji językowej, oczywiście można w katalogu ze skryptem umieścić bcdedit.exe wraz z angielskim bcdedit.exe.mui.

Tak czy siak myślę, że wypada dodać informację o tym pod skryptem.

 

Innymi słowy - ze sposobu działania komendy "for" wynika pewien problem interpretacyjny związany z różnicami między językami, skrypt którego użyłeś jest więc prawidłowy dla systemu w języku angielskim ale już nie w polskim.

Skrypt wykona się częściowo - utworzy nową pozycję ale już nie ustawi dla niej parametrów, możesz się o tym przekonać wykonując komendę"

 

bcdedit /store H:\boot\BCD /enum all

 

 

powinieneś zobaczyć osierocony GUID.

 

Myślę, że już sam się nie domyśliłeś co trzeba poprawić ale na wszelki wypadek podpowiedź - "tokens=3" > "tokens=2"

 

ps

Napisałeś, że archiwum z linków jest uszkodzone, fakt ale w samym archiwum uszkodzone jest tylko przykładowe iso płyty, resztę można rozpakować bez problemu, po prostu otrzymamy to co siedzi w "setgrub mini", w iso jest czyste winpe.

W wolnej chwili postaram się wrzucić odświeżoną wersję.

 

pzdr

Odnośnik do komentarza

Z cyklu od problemu do problemu :)

 

Gruba zainstalowałem w końcu ręcznie wg dokumentacji. Niestety juz podczas wcześniejszych prób zauważyłem pewien efekt który niestety występuje nadal. Po zabawie z BCD i zbootowaniu poprawianego pena, wybieram windows ... i niestety pozostaje on na szarym tle z ikoną - nie wczytuje się menu. Podmiana plików w katalogu boot naprawia sytuacje ale tracę wprowadzone zmiany.

 

Pozdrawiam Krrzysiek

Odnośnik do komentarza

Niestety bywa problematyczne odpalanie bootmgr-a zarówno z gruba jak i syslinuxa.

Jeżeli jest problem z tym co opisano w dokumentacji można spróbować posłużyć się pośrednictwem obrazu sektora rozruchowego.

 

W tym celu musisz najpierw ustawić bootsector pena na kompatybilny z NT60 a następnie go zgrać jakiś narzędziem (ja się posługuję edytor hex najczęściej).

Wystarczy pierwsze 512 bajtów.

 

Komenda odpalające wygląda tak:

 

title BOOTMGR 
root (hd0,0)
chainloader (hd0,0)/btm.mbr

 

Oczywiście nazwa obrazu botsektora może być inna niż btm.mbr.

 

pzdr

Odnośnik do komentarza

Moze na poczatek ... Ten skrypt z dokumentacji po poprawce 3/2 sypał komunikatami błędów, zrobiłem wiec jeszcze jedna próbę ręcznej instalacji wg. procedury:

 

BCDEDIT.EXE /store H:\boot\BCD /create /d "Start GRUB4DOS" /application bootsector

 

The entry {6992ac05-ea18-11e0-84cd-6c626d304562} was successfully created.

 

 

BCDEDIT.EXE /store H:\boot\BCD /set {6992ac05-ea18-11e0-84cd-6c626d304562} device boot

 

The operation completed successfully.

 

 

BCDEDIT.EXE /store H:\boot\BCD /set {6992ac05-ea18-11e0-84cd-6c626d304562} path \grldr.mbr

 

The operation completed successfully.

 

 

BCDEDIT.EXE /store H:\boot\BCD /displayorder {6992ac05-ea18-11e0-84cd-6c626d304562} /addlast

 

Komunikat ze OK (nie odpisałem)

 

 

Listing :

 


C:\Program Files\Windows AIK\Tools\PETools>bcdedit /store H:\boot\BCD /enum all

Windows Boot Manager
--------------------
identifier              {bootmgr}
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {default}
displayorder            {7619dcc9-fafe-11d9-b411-000476eba25f}
                       {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {7619dcc9-fafe-11d9-b411-000476eba25f}
device                  ramdisk=[boot]\boot\boot.wim,{7619dcc8-fafe-11d9-b411-00
0476eba25f}
path                    \windows\system32\boot\winload.exe
description             Windows Setup
locale                  en-US
inherit                 {bootloadersettings}
osdevice                ramdisk=[boot]\boot\boot.wim,{7619dcc8-fafe-11d9-b411-00
0476eba25f}
systemroot              \windows
detecthal               Yes
winpe                   Yes
ems                     Yes

Windows Memory Tester
---------------------
identifier              {memdiag}
device                  boot
path                    \boot\memtest.exe
description             Windows Memory Diagnostic
locale                  en-US
inherit                 {globalsettings}

Real-mode Boot Sector
---------------------
identifier              {default}
device                  boot
path                    \grldr.mbr
description             Start GRUB4DOS

Real-mode Boot Sector
---------------------
identifier              {da461a1d-ea17-11e0-84cd-6c626d304562}
description             Start GRUB4DOS

EMS Settings
------------
identifier              {emssettings}
bootems                 Yes

Debugger Settings
-----------------
identifier              {dbgsettings}
debugtype               Serial
debugport               1
baudrate                115200

Global Settings
---------------
identifier              {globalsettings}
inherit                 {dbgsettings}
                       {emssettings}

Boot Loader Settings
--------------------
identifier              {bootloadersettings}
inherit                 {globalsettings}
                       {hypervisorsettings}

Hypervisor Settings
-------------------
identifier              {hypervisorsettings}
description             Hypervisor Settings
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

Device options
--------------
identifier              {7619dcc8-fafe-11d9-b411-000476eba25f}
ramdisksdidevice        boot
ramdisksdipath          \boot\boot.sdi


 

Widze ze ten identyfikator do Gruba jest inny ale:

 

1/ Grub działa łącznie z umieszczonym w nim testem RAM

2/ Robiłem kilka podejść i przywracałem z backupu katalog boot, to chyba temu

Pozdrawiam

Odnośnik do komentarza

Widzisz identyfikator skrócony, oznacza to tyle, że jest to domyślnie uruchamiana pozycja. Jeżeli dodasz do bcdedit przełącznik /v to zobaczysz faktyczny identyfikator.

 

Wykonaj polecenie:

BCDEDIT.EXE /store H:\boot\BCD /set {bootmgr} device boot

 

możesz też wywalić tą sierotkę:

BCDEDIT.EXE /store H:\boot\BCD /delete {da461a1d-ea17-11e0-84cd-6c626d304562} /f

 

ps.

masz angielskie komunikaty (co jest ciekawe) więc u ciebie powinno być "tokens=3"

Chodzi o to żeby z komunikatu:

The entry {6992ac05-ea18-11e0-84cd-6c626d304562} was successfully created

wyłowić wpis będący guid nowo utworzonego wpisu. 1-"The" , 2-"entry", i 3- {guid}

 

W lokalizowanej wersji odpowiedź bcdedit brzmi:

Wpis {guid} został pomyślnie utworzony

więc guid jest pozycją drugą.

 

Widać u ciebie co innego było przyczyną dla której wpis się nie tworzył, choć sam skrypt wygląda poprawnie.

Może jakaś niespójność w samym bcd, można spróbować stworzyć nowe od podstaw.

Przykładowy skrypt budujący BCD od podstaw, łatwo się da przystosować do własnych celów:

 

 

cls
@setlocal
@cd .\
@echo off

@set BCD-File=.\bcd
@del %BCD-File%

@set A=Instalatory Windows
@set A1=winpe32.wim

@set C=Dart 32Bit
@set c1=dart32.wim

@set E=SysLinux

@set F=Active B@@t Disk
@set F1=active.wim

@bcdedit.exe /createstore %BCD-File%
@bcdedit.exe /store %BCD-File% /create {globalsettings} /d "Global Settings"
@bcdedit.exe /store %BCD-File% /set {globalsettings} inherit {emssettings}

@bcdedit.exe /store %BCD-File% /create {bootloadersettings} /d "Boot Loader Settings"
@bcdedit.exe /store %BCD-File% /set {bootloadersettings} inherit {globalsettings}

@bcdedit.exe /store %BCD-File% /create {emssettings} /d "EMS Settings"
@bcdedit.exe /store %BCD-File% /emssettings BIOS

@for /f "tokens=3" %%a in ('bcdedit.exe /store %BCD-File% /create {ramdiskoptions} /d "Device options"') do set guidram=%%a
@bcdedit.exe /store %BCD-File% /set %guidram% ramdisksdidevice boot
@bcdedit.exe /store %BCD-File% /set %guidram% ramdisksdipath \boot\boot.sdi
@bcdedit.exe /store %BCD-File% /deletevalue %guidram% description

@bcdedit.exe /store %BCD-File% /create {bootmgr} /d "Windows Boot Manager"
@bcdedit.exe /store %BCD-File% /set {bootmgr} device boot
@bcdedit.exe /store %BCD-File% /set {bootmgr} locale pl-PL
@bcdedit.exe /store %BCD-File% /set {bootmgr} inherit {globalsettings}
@bcdedit.exe /store %BCD-File% /bootems {bootmgr} ON

@for /f "tokens=3" %%a in ('bcdedit.exe /store %BCD-File% /create /d "%A%" /application osloader') do set guida=%%a
@bcdedit.exe /store %BCD-File% /set %guida% inherit {bootloadersettings}
@bcdedit.exe /store %BCD-File% /set %guida% systemroot \Windows
@bcdedit.exe /store %BCD-File% /set %guida% path \windows\system32\boot\winload.exe
@bcdedit.exe /store %BCD-File% /set %guida% locale pl-PL
@bcdedit.exe /store %BCD-File% /set %guida% detecthal Yes
@bcdedit.exe /store %BCD-File% /set %guida% winpe Yes
@bcdedit.exe /store %BCD-File% /ems %guida% ON 
@bcdedit.exe /store %BCD-File% /bootems %guida% ON 
@bcdedit.exe /store %BCD-File% /set %guida% osdevice ramdisk=[boot]\sources\%A1%,%guidram%
@bcdedit.exe /store %BCD-File% /set %guida% device ramdisk=[boot]\sources\%A1%,%guidram%
@bcdedit.exe /store %BCD-File% /displayorder %guida% /addlast
@bcdedit.exe /store %BCD-File% /default %guida%

@for /f "tokens=3" %%a in ('bcdedit.exe /store %BCD-File% /create /d "%C%" /application osloader') do set guidc=%%a
@bcdedit.exe /store %BCD-File% /set %guidc% inherit {bootloadersettings}
@bcdedit.exe /store %BCD-File% /set %guidc% systemroot \Windows
@bcdedit.exe /store %BCD-File% /set %guidc% path \windows\system32\boot\winload.exe
@bcdedit.exe /store %BCD-File% /set %guidc% locale pl-PL
@bcdedit.exe /store %BCD-File% /set %guidc% detecthal Yes
@bcdedit.exe /store %BCD-File% /set %guidc% winpe Yes
@bcdedit.exe /store %BCD-File% /ems %guidc% ON 
@bcdedit.exe /store %BCD-File% /bootems %guidc% ON 
@bcdedit.exe /store %BCD-File% /set %guidc% osdevice ramdisk=[boot]\sources\%C1%,%guidram%
@bcdedit.exe /store %BCD-File% /set %guidc% device ramdisk=[boot]\sources\%C1%,%guidram%
@bcdedit.exe /store %BCD-File% /toolsdisplayorder %guidc% /addlast

@for /f "tokens=3" %%a in ('bcdedit.exe /store %BCD-File% /create /d "%F%" /application osloader') do set guidf=%%a
@bcdedit.exe /store %BCD-File% /set %guidf% inherit {bootloadersettings}
@bcdedit.exe /store %BCD-File% /set %guidf% systemroot \Windows
@bcdedit.exe /store %BCD-File% /set %guidf% path \windows\system32\boot\winload.exe
@bcdedit.exe /store %BCD-File% /set %guidf% locale pl-PL
@bcdedit.exe /store %BCD-File% /set %guidf% detecthal Yes
@bcdedit.exe /store %BCD-File% /set %guidf% winpe Yes
@bcdedit.exe /store %BCD-File% /ems %guidf% ON 
@bcdedit.exe /store %BCD-File% /bootems %guidf% ON 
@bcdedit.exe /store %BCD-File% /set %guidf% osdevice ramdisk=[boot]\sources\%F1%,%guidram%
@bcdedit.exe /store %BCD-File% /set %guidf% device ramdisk=[boot]\sources\%F1%,%guidram%
@bcdedit.exe /store %BCD-File% /displayorder %guidf% /addlast

@for /f "tokens=3" %%a in ('bcdedit.exe /store %BCD-File% /create /d "%E%" /application osloader') do set guide=%%a
@bcdedit.exe /store %BCD-File% /set %guide% inherit {bootloadersettings}
@bcdedit.exe /store %BCD-File% /set %guide% path \syslinux\ldlinux.bin
@bcdedit.exe /store %BCD-File% /set %guide% locale pl-PL
@bcdedit.exe /store %BCD-File% /set %guide% device boot
@bcdedit.exe /store %BCD-File% /displayorder %guide% /addlast

@bcdedit.exe /store %BCD-File% /create {memdiag} /d "Windows Memory Diagnostic"
@bcdedit.exe /store %BCD-File% /set {memdiag} locale pl-PL
@bcdedit.exe /store %BCD-File% /set {memdiag} device boot
@bcdedit.exe /store %BCD-File% /set {memdiag} path \boot\memtest.exe
@bcdedit.exe /store %BCD-File% /set {memdiag} inherit {globalsettings}
@bcdedit.exe /store %BCD-File% /toolsdisplayorder {memdiag} /addlast

@endlocal


 

 

 

pzdr

Odnośnik do komentarza

BCDEDIT.EXE pochodzi z systemu pena z Twojego artykułu, natomiast pracuje na Windows 8 z wiadomych względów angielskim.

 

2 opcje prostsze nie pomogły.

Ta sekcja "@bcdedit.exe /store %BCD-File% /create {memdiag} /d "Windows Memory Diagnostic"" jest potrzebna ? i tak tego pliku tam nie ma i nie wydaje się być przydatna.

Pozdrawiam

Odnośnik do komentarza
  • 2 tygodnie później...

Witam ponownie

Była tu kiedyś poruszona kwestia robienia upgrade dysku SSD. Polecałeś Parted Magic. Okazało się ze to ISO od OCZ o którym ja mowiłem to właśnie GP z wgranym ich programem do dysku. Niestety od paru dni walczę bez powodzenia z podpięciem tego pod GRUBA zarówno tego OCZ jak i PM 6.7. Z jednej strony pisałeś że nie wszystko się da z drugiej strony widzę ze sporo ludzi podpięło wersje 5.x i działa. Znalazłem tez kilka postów z tym samym problemem co u mnie - wersja 6x w pewnym momencie otrzymujemy komunikat błędu o braku pliku pmagic-6.4.sqfs.

 

Da się to uruchomić ?

A jeśli nie to jak wgrać ten program OCZ do starszej wersji PM ?

 

Pena mam w formacie NTFS, ..... o syslinux mogę zapomnieć ?

Pozdrawiam

Odnośnik do komentarza

title PMagic
kernel /pmagic/bzImage noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 loglevel=0 max_loop=256 keymap=pl pl_PL 
initrd /pmagic/initramfs
map --unmap=0:0xff

 

Zwróć uwagę, jaką nazwę ma plik sqfs, z jakiegoś powodu potrafi po rozpakowaniu przekonwertować się na coś w stylu ''pmagic_6.4.sqfs", bardzo łatwo to przeoczyć, no i w PM 6.7 plik powinien nazywać się "pmagic-6.7.sqfs" a nie "pmagic-6.4.sqfs".

Następna sprawa, na penie NTFS wiele "odmian" live linuxa może sprawiać kłopoty ponieważ wiele z nich nie posiada obsługi NTFS wbudowanej w jądro co powoduje problemy z dostępem do dodatkowych plików (pluginów i tp.), proponuję rozpocząć od wersji pxe w której wszystko znajduje się w jednym pliku sqsf, sprawia przez to mniej problemów.

 

Ja programu nie wgrywam, po prostu wrzucam go na pena (miejsce nie ma znaczenia), PM bez problemu obsługuje pamięci USB, i odpalam z konsoli, ba można go nawet zassać z poziomu samego PM do updatu i tak musimy mieć w nim aktywne połączenie z siecią bo aktualny firmware ściąga się w momencie odpalenia programu. Jak to w linuksie komendę odpala się ze ścieżką czyli po "cd" do katalogu z programem podajemy ./fwupd a nie fwupd a jako argument podajemy nazwę urządzenia (powinny być odmontowane dojścia do niego) czyli cała komenda np.:

 

./fwupd /dev/sda

 

Pena mam w formacie NTFS, ..... o syslinux mogę zapomnieć ?

 

W tym momencie tak, ale na liście mailingowej Syslinuxa pojawił się wpis o integracji tego systemu plików w wersji "do odczytu" w najnowszej becie, niestety po padzie całego kernel.org nie ma na razie dostępu do strony projektu z zwłaszcza do plików.

 

pzdr

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...