Witam,
jestem w trakcie tworzenia skryptu który ma za zadanie wykasowanie wszystkich partycji na pendrivie a następnie założeniu jednej w fat32 po czym ustawieniu flagi boot na true i dalej coś mi umyka bo po skopiowaniu syslinuxa na pendrivea i próbie uruchomienia systemu z niego wywala mi błąd że dysk nie jest bootowalny.
Może ktoś mi opisać co mogę robić źle? Mam wrażenie że umyka mi coś pomiędzy założeniem partycji fat32 na pendrivie i ustawieniu jego flagi boot a wgraniem syslinuxa... Czy trzeba wgrać jakiś specjalny plik bin na mbr pendrivea?
[Skrypt] Tworzenie bootowalnego pendriva z SysLinuxem
No ja kiedyś robiłem wedle tego przepisu:
http://www.syslinux.org/wiki/index.php/ ... _For_Linux
Nie mam wolnego pendrive'a żeby przejść te kroki, ale pamiętam, że toto działało
http://www.syslinux.org/wiki/index.php/ ... _For_Linux
Nie mam wolnego pendrive'a żeby przejść te kroki, ale pamiętam, że toto działało
Stworzenie takiego skryptu przerasta możliwości wielu ludzi na tym forum,
a ci co to potrafią, to im się nie chce.
Syslinux jest bardzo prosty załóżmy że mamy jakiś pendrive /dev/sdb1
na pendrivie musisz utworzyć katalog syslinux,
skopiować do niega 'vesamenu.c32' z katalogu 'usr/lib/syslinux/',
stworzyć plik startowy o nazwie 'syslinux.cfg' np. taki
i wykonać polecenie
Ps.
Przykładowy plik pochodzi z czasów gdy musiałem pracować na laptopie bez twardego dysku.
Musisz go dostosować do swoich potrzeb, oraz włączyć fajny obrazek tła.
Pozdrawiam
a ci co to potrafią, to im się nie chce.
Syslinux jest bardzo prosty załóżmy że mamy jakiś pendrive /dev/sdb1
na pendrivie musisz utworzyć katalog syslinux,
skopiować do niega 'vesamenu.c32' z katalogu 'usr/lib/syslinux/',
stworzyć plik startowy o nazwie 'syslinux.cfg' np. taki
Kod: Zaznacz cały
menu title Boot menu
# menu background /syslinux/fajny_obrazek_tła.png
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg * #ffffffff #00000000 *
menu color help 37;40 #ffdddd00 #00000000 none
#menu vshift 17
#menu rows 10
#menu helpmsgrow 15
# The command line must be at least one line from the bottom.
menu cmdlinerow 16
menu timeoutrow 16
menu tabmsgrow 18
menu tabmsg Press ENTER to boot or TAB to edit a menu entry
label live-686
menu label Live 686-3.10-2-686-pae
kernel /live/vmlinuz-3.10-2-686-pae
append initrd=/live/initrd.img-3.10-2-686-pae boot=live config noswp quiet
label Debian GNU/Linux REAL
menu label Debian GNU/Linux REAL
kernel /live/vmlinuz-3.10-2-686-pae root=/dev/sda3 ro quiet
append initrd=/live/initrd.img-3.10-2-686-pae
label memtest
menu label Memory test
kernel /live/memtest
label MHDD
menu label MHDD
kernel /live/memdisk raw
append initrd=/live/mhdd_fdd.img
default /syslinux/vesamenu.c32
prompt 0
timeout 99
Kod: Zaznacz cały
syslinux -i /dev/sdb1
Przykładowy plik pochodzi z czasów gdy musiałem pracować na laptopie bez twardego dysku.
Musisz go dostosować do swoich potrzeb, oraz włączyć fajny obrazek tła.
Pozdrawiam
Witam ponownie,
przepraszam że wcześniej się nie odezwałem ale byłem zajęty
Okazało się że skrypt zadziałał problemem było wgrywanie pliku mbr.bin
O dziwo komenda nie działała poprawnie
Niestety nadal wolałbym wgrywać mbr.bin na pena bez potrzeby instalowania install-mbr ale coś dd nie robi tego prawidłowo. Pewnie złe polecenie
przepraszam że wcześniej się nie odezwałem ale byłem zajęty

Okazało się że skrypt zadziałał problemem było wgrywanie pliku mbr.bin
O dziwo komenda nie działała poprawnie
ale po zainstalowaniu i zastosowaniu :printf '\1' | cat mbr.bin - | dd bs=440 count=1 iflag=fullblock conv=notrunc of=/dev/sda &>> /var/log/crepen.log
oraz po zainstalowaniu i wgraniu syslinuxa :install-mbr -p 1 /dev/sdb1 &>>/var/log/crepen.log
wszystko poszło ładniesyslinux -d /boot/syslinux -s /dev/sdb1;

Niestety nadal wolałbym wgrywać mbr.bin na pena bez potrzeby instalowania install-mbr ale coś dd nie robi tego prawidłowo. Pewnie złe polecenie

Twój skrypt zakłada że mbr.bin jest w twoim aktualnym katalogu, tymczasem mbr.bin dla syslinuxa jest w /usr/lib/syslinux/,
chyba, że /usr/lib/syslinux/ jest twoim aktualnym katalogiem, albo przekopiowałeś mbr.bin do swojego katalogu.
Podałeś również of=/dev/sda, to spowoduje wpis na twoim dysku twardym, a nie na pendrivie.
Spróbuj tego.
Ps.
Nikt nie powiedział że jeżeli u ciebie pendrive jest na /dev/sdb1 to u innych też tak będzie, dlatego pisanie uniwersalnych skryptów jest trudniejsze niż przypuszczasz.
Życzę powodzenia i pozdrawiam.
chyba, że /usr/lib/syslinux/ jest twoim aktualnym katalogiem, albo przekopiowałeś mbr.bin do swojego katalogu.
Podałeś również of=/dev/sda, to spowoduje wpis na twoim dysku twardym, a nie na pendrivie.
Spróbuj tego.
Musisz tylko zmienić /dev/fd0 na /dev/sdb1fragment manuala do syslinuxa.
man syslinux
syslinux --install /dev/fd0
This will alter the boot sector on the disk and copy a file named ldlinux.sys into its root directory.
a po polsku
Zmieni to sektor rozruchowy na dysku i skopiuje plik o nazwie ldlinux.sys w jego katalogu głównym.
Ps.
Nikt nie powiedział że jeżeli u ciebie pendrive jest na /dev/sdb1 to u innych też tak będzie, dlatego pisanie uniwersalnych skryptów jest trudniejsze niż przypuszczasz.
Życzę powodzenia i pozdrawiam.
Samo skopiowanie nic nie da. Musi być pewien fragment rozruchowy w pewnym miejscu pendrive zainstalowany
https://wiki.archlinux.org/index.php/Syslinux
https://wiki.archlinux.org/index.php/Syslinux