{"id":862,"date":"2017-04-22T15:56:15","date_gmt":"2017-04-22T13:56:15","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=862"},"modified":"2017-06-20T23:49:14","modified_gmt":"2017-06-20T21:49:14","slug":"grub","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/22\/grub\/","title":{"rendered":"GRUB"},"content":{"rendered":"<p>Menu GRUB wy\u015bwietla list\u0119 bootowalnych kerneli do wyboru. Zmienia\u0107 j\u0105dra mo\u017cna strza\u0142kami g\u00f3ra i d\u00f3\u0142. Wciskaj\u0105c klawisz <em>&#8220;e&#8221;<\/em> mo\u017cna wej\u015b\u0107 do edycji danego j\u0105dra, do linii komend GRUB mo\u017cna wej\u015b\u0107 wciskaj\u0105c klawisz <em>&#8220;c&#8221;<\/em>. W trybie edycji GRUB wczytuje wybran\u0105 pozycj\u0119 z pliku <code>\/boot\/grub2\/grub.cfg<\/code>. Po wprowadzeniu zmian w trybie edycji mo\u017cna nacisn\u0105\u0107 <em>Ctrl+x<\/em> aby uruchomi\u0107 system, <em>Ctrl+c<\/em> aby prze\u0142\u0105czy\u0107 si\u0119 do linii komend <em>grub&gt;<\/em> lub ESC aby anulowa\u0107 wprowadzone zmiany i przenie\u015b\u0107 si\u0119 z powrotem do g\u0142\u00f3wnego menu. <!--more-->B\u0119d\u0105c w linii komend grub&gt; mo\u017cna nacisn\u0105\u0107 TAB aby wy\u015bwietli\u0107 list\u0119 dost\u0119pnych komend.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Plik konfiguracyjny<code> \/etc\/default\/grub<\/code>.<\/span><\/p>\n<p>Zawarto\u015b\u0107 tego pliku jest wykorzystywana do generowania pliku \/boot\/grub2\/grub.cfg, kt\u00f3ry kontroluje zachowanie GRUBa w czasie bootowania systemu. Jakiekolwiek zmiany w pliku \/etc\/default\/grub b\u0119d\u0105 skouteczne po uruchomieniu narz\u0119dzia grub2-mkconfig. Domy\u015blna zawarto\u015b\u0107 pliku \/etc\/default\/grub znajduje si\u0119 poni\u017cej.<\/p>\n<pre> GRUB_TIMEOUT=5\r\n GRUB_DISTRIBUTOR=\"$(sed 's, release .*$,,g' \/etc\/system-release)\"\r\n GRUB_DEFAULT=saved\r\n GRUB_DISABLE_SUBMENU=true\r\n GRUB_TERMINAL_OUTPUT=\"console\"\r\n GRUB_CMDLINE_LINUX=\"rd.lvm.lv=vg00\/swap vconsole.font=latarcyrheb-sun16 crashker\r\n nel=auto vconsole.keymap=us rd.lvm.lv=vg00\/root rhgb quiet\"\r\n GRUB_DISABLE_RECOVERY=\"true\"<\/pre>\n<table style=\"width: 746px;\">\n<tbody>\n<tr>\n<td style=\"width: 168.65px;\">Dyrektywa<\/td>\n<td style=\"width: 559.35px;\">Opis<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_TIMEOUT<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">Czas wy\u015bwietlania menu, po kt\u00f3rym rozpocznie si\u0119 \u0142adowanie domy\u015blnego kernela.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_DISTRIBUTOR<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">Nazwa dystrybucji Linuxa.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_DEFAULT<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">Bootuje kernel wybrany podczas poprzedniego uruchamiania systemu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_DISABLE_SUBMENU<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">W\u0142\u0105cza\/wy\u0142\u0105cza wy\u015bwietlanie si\u0119 menu GRUB.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_TERMINAL_OUTPUT<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">Ustawia domy\u015blny terminal.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_CMDLINE_LINUX<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">Okre\u015bla opcje jakie maj\u0105 by\u0107 dodane do kernela przy starcie systemu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 168.65px;\"><span style=\"color: #008000;\"><code> GRUB_DISABLE_RECOVERY<\/code><\/span><\/td>\n<td style=\"width: 559.35px;\">Wy\u0142\u0105cza wy\u015bwietlanie pozycji w menu dotycz\u0105cej odzyskiwania systemu.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Plik <code>\/boot\/grub2\/grub.cfg<\/code>.<\/span><\/p>\n<p>G\u0142\u00f3wny plik konfiguracyjny GRUB, dla system\u00f3w opartych o BIOS plik znajduje si\u0119 w katalogu \/boot\/grub2, dla system\u00f3w opartych o UEFI plik znajduje si\u0119 w katalogu \/boot\/efi\/EFI\/redhat. Plik generowany jest manualnie narz\u0119dziem grub2-mkconfig lub automatycznie podczas instalacji kernela. W czasie tego procesu wszystkie r\u0119czne zmiany dokonywane w tym pliku s\u0105 tracone.<\/p>\n<p>Generowanie pliku <code>grub.cfg<\/code> w systemach opartych o BIOS i UEFI:<\/p>\n<pre># grub2-mkconfig \u2013o \/boot\/grub2\/grub.cfg\r\n# grub2-mkconfig \u2013o \/boot\/efi\/EFI\/redhat\/grub.cfg<code><\/code><\/pre>\n<p>Narz\u0119dzie korzysta z ustawie\u0144 w pliku \/etc\/default\/grub i skrypt\u00f3w pomocniczych zawartych w katalogu \/etc\/grub.d. Lista tych skrypt\u00f3w znajduje si\u0119 poni\u017cej.<\/p>\n<pre><code><\/code># ll \/etc\/grub.d <span style=\"color: #808080;\">razem 72<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root\u00a0 8702 11-22 16:51 00_header<\/span> <span style=\"color: #808080;\">-rwxr-xr-x. 1 root root\u00a0\u00a0 992 2016-06-16\u00a0 00_tuned<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root\u00a0\u00a0 232 11-22 16:51 01_users<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root 10781 11-22 16:51 10_linux<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root 10275 11-22 16:51 20_linux_xen<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root\u00a0 2559 11-22 16:51 20_ppc_terminfo<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root 11169 11-22 16:51 30_os-prober<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root\u00a0\u00a0 214 11-22 16:51 40_custom<\/span> <span style=\"color: #808080;\">-rwxr-xr-x\u00a0 1 root root\u00a0\u00a0 216 11-22 16:51 41_custom<\/span> <span style=\"color: #808080;\">-rw-r--r--\u00a0 1 root root\u00a0\u00a0 483 11-22 16:51 README<\/span><\/pre>\n<p>Pierwszy skrypt <code>00_header<\/code> ustawia \u015brodowisko GRUB. Skrypt 10_linux szuka wszystkich zainstalowanych kerneli na tej samej partycji. 30_os-prober szuka obecno\u015bci innych system\u00f3w operacyjnnych. Skrypty 40_custom i 41_custom s\u0105 dla nas do wprowadzania modyfikacji do pliku konfiguracyjnego GRUB.<\/p>\n<p>Plik grub.cfg zawiera bloki menuentry dla ka\u017cdego zainstalowanego j\u0105dra. Ka\u017cdy blok zaczyna si\u0119 tytu\u0142em, kt\u00f3ry zawiera nazw\u0119 kernela i pliku obrazu RAM dysku. Blok zawiera po\u0142o\u017cenie kernela w katalogu \/boot oraz wiele opcji i modu\u0142\u00f3w do wczytania. Nazwy tych blok\u00f3w wy\u015bwietlane s\u0105 przez GRUB w czasie startu systemu i mo\u017cna wybra\u0107 kt\u00f3ry\u015b z nich do za\u0142adowania. Przyk\u0142adowy blok menuentry dla j\u0105dra 3.10.0-123.el7.x6_64 przedstawiony jest poni\u017cej.<\/p>\n<pre><span style=\"color: #808080;\"> menuentry 'Red Hat Enterprise Linux Server, with Linux 3.10.0-123.el7.x86_64 ' --class red --class gnu-linux --class gnu --class os<\/span>\r\n <span style=\"color: #808080;\"> --unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-964201bb-1e32-4794-a2f2-7a33e2fb591a' {<\/span>\r\n <span style=\"color: #808080;\"> load_video<\/span>\r\n <span style=\"color: #808080;\"> set gfxpayload=keep<\/span>\r\n <span style=\"color: #808080;\"> insmod gzio<\/span>\r\n <span style=\"color: #808080;\"> insmod part_msdos<\/span>\r\n <span style=\"color: #808080;\"> insmod xfs<\/span>\r\n <span style=\"color: #808080;\"> set root='hd0,msdos1'<\/span>\r\n <span style=\"color: #808080;\"> if [ x$feature_platform_search_hint = xy ]; then<\/span>\r\n <span style=\"color: #808080;\"> search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --<\/span>\r\n <span style=\"color: #808080;\"> hint='hd0,msdos1' e6c9c801-e77a-4ce0-ac89-eeb2d3a4774f<\/span>\r\n <span style=\"color: #808080;\"> else<\/span>\r\n <span style=\"color: #808080;\"> search --no-floppy --fs-uuid --set=root e6c9c801-e77a-4ce0-ac89-eeb2d3a4774f<\/span>\r\n <span style=\"color: #808080;\"> fi linux<\/span>\r\n <span style=\"color: #808080;\"> 16 \/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=964201bb-1e32-4794-a2f2-7a33e2fb591a ro rd.lvm.lv=vg00\/swap<\/span>\r\n <span style=\"color: #808080;\"> vconsole.font=latarcyrheb-sun16 crashkernel=auto vconsole.keymap=us rd.lvm.lv=vg00\/root rhgb quiet LANG=en_US.UTF-8<\/span>\r\n <span style=\"color: #808080;\"> initrd16 \/initramfs-3.10.0-123.el7.x86_64.img<\/span>\r\n <span style=\"color: #808080;\"> }<\/span><\/pre>\n<p>Je\u017celi do systemu dodawane\u00a0 jest nowe j\u0105dro, wpisy dotycz\u0105ce starego pozostaj\u0105 nadal i mog\u0105 by\u0107 wybrane w czasie wy\u015bwietlania menu GRUBa podczas startu systemu.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Ustawianie domy\u015blnego j\u0105dra do za\u0142adowania.<\/span><\/p>\n<p>Domy\u015blne j\u0105dro, kt\u00f3re ma by\u0107 \u0142adowane w czasie startu systemu mo\u017cna zmieni\u0107 komend\u0105:<\/p>\n<pre># grub2-set-default\u00a0 numer_wpisu_w_menu_GRUB<\/pre>\n<p>Numeracja wpis\u00f3w zaczyna si\u0119 od zera.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Zmiana czasu wy\u015bwietlanie menu grub.<\/span><\/p>\n<p>Edytujemy zmienn\u0105 <code>GRUB_TIMEOUT<\/code> w pliku<code> \/etc\/default\/grub<\/code> i generujemy nowy plik konfiguracyjny<code> \/boot\/grub2\/grub.cfg<\/code> .<\/p>\n<pre># grub2-mkconfig -o \/boot\/grub2\/grub.cfg<\/pre>\n<p>Je\u017celi chcemy aby menu w og\u00f3le si\u0119 nie pojawia\u0142o to zmienn\u0105 <code>GRUB_TIMEOUT<\/code> ustawiamy na <code>0<\/code>.<\/p>\n<pre>GRUB_TIMEOUT=0<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Uruchamianie systemu w okre\u015blonych trybach (targetach, run levelach).<\/span><\/p>\n<p>Domy\u015blnie RHEL uruchamiany jest w trybie graficznym ale mo\u017ce by\u0107 uruchamiany w innych trybach. Mo\u017cliwe jest tak\u017ce uruchomienie systemu w trybie awaryjnym (<em>emergency<\/em>) i w trybie ratunkowym (<em>rescue<\/em>). Te okre\u015blone targety mog\u0105 by\u0107 wybrane dzi\u0119ki interfejsowi GRUB, wybieraj\u0105c okre\u015blon\u0105 pozycj\u0119 w menu, klikaj\u0105c <em>&#8220;e&#8221;<\/em> i w trybie edycji wskazuj\u0105c po\u017c\u0105dany target dyrektyw\u0105 <em>systemd.init<\/em>. Na przyk\u0142ad aby za\u0142adowa\u0107 system do targetu awaryjnego dodajemy pozycj\u0119 <code>systemd.unit=emergency.target<\/code> (lub po prostu &#8216;<code>emergency<\/code>&#8216;) w linii z domy\u015blnym kernelem jak na zdj\u0119ciu poni\u017cej.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-878 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/Grub-300x39.jpg\" alt=\"\" width=\"569\" height=\"74\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Grub-300x39.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Grub.jpg 699w\" sizes=\"(max-width: 569px) 100vw, 569px\" \/><\/p>\n<p>Zamiast\u00a0 <code>systemd.unit=emergency.target<\/code>\u00a0 mo\u017cemy wpisa\u0107 <code>systemd.unit=emergency.rescue<\/code> (lub 1, s lub single). Parametry <em>SysVinit<\/em> nadal mog\u0105 by\u0107 u\u017cywane: <code>s, S, single, 1, 2, 3<\/code> lub <code>5<\/code>.\u00a0 <em>Systemd<\/em> mapuje je do powi\u0105zanych plik\u00f3w<code> runlevelX.target<\/code>.<\/p>\n<p>Po wprowadzeniu modyfikacji klikamy <em>Ctrl+x<\/em>, wprowadzamy has\u0142o roota i rebootujemy system wpisuj\u0105c:<\/p>\n<pre># systemctl reboot<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-880 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/Grub2-300x51.jpg\" alt=\"\" width=\"518\" height=\"88\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Grub2-300x51.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Grub2.jpg 664w\" sizes=\"(max-width: 518px) 100vw, 518px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 1. Odzyskiwanie has\u0142a.<\/p>\n<p>Po wy\u015bwietleniu si\u0119 menu GRUB wybieramy pierwsz\u0105 pozycj\u0119 i wchodzimy do trybu edycji naciskaj\u0105c klawisz <em>\u201ee\u201d<\/em>.<\/p>\n<p>I spos\u00f3b<br \/>\n1. W trybie edycji przechodzimy kursorem na d\u00f3\u0142 i zamieniamy wpis<br \/>\n\u201e<code>rhgb quiet<\/code>\u201d na<code> init=\/bin\/sh<\/code><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-884 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery-300x141.jpg\" alt=\"\" width=\"657\" height=\"309\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery-300x141.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery-768x361.jpg 768w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery.jpg 877w\" sizes=\"(max-width: 657px) 100vw, 657px\" \/><\/p>\n<p>2. Wciskamy <em>Ctrl+x<\/em> i bootujemy system do wybranego wcze\u015bniej targetu (<code>init=bin\/sh<\/code>).<\/p>\n<p>3. Montujemy ponownie system plik\u00f3w<code> \/<\/code> (root) w trybie do odczytu i zapisu:<br \/>\n<code>sh-4.2# mount -o remount,rw \/<\/code><br \/>\n4. Sprawdzamy czy system plik\u00f3w \/ (root) zosta\u0142 zamontowany w trybie rw:<br \/>\n<code>sh-4.2# mount | grep -w \u201e\/\u201d<\/code><br \/>\n5. Teraz mo\u017cemy zmieni\u0107 has\u0142o root:<br \/>\n<code>sh-4.2# passwd root<\/code><br \/>\n6. Wprowadzamy zmiany w kontek\u015bcie SELinux dla ca\u0142ego systemu plik\u00f3w:<br \/>\n<code>sh-4.2# touch \/.autorelabel<\/code><br \/>\n7. Uruchamiamy system:<br \/>\n<code>sh-4.2# exec \/sbin\/init<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>II spos\u00f3b<br \/>\nW trybie edycji przesuwamy si\u0119 kursorem na sam d\u00f3\u0142 ekrany a\u017c wy\u0142oni si\u0119 obraz j\u0105dra (<code>linux16 \/boot\/vmlinuz\u2026..<\/code>).<br \/>\nWpisujemy\u00a0 <code>rd.break<\/code>\u00a0 po<code> LANG=pl_PL.UTF8<\/code>\u00a0 i wpisujemy <em>Ctrl+X<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-886 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery2-300x154.jpg\" alt=\"\" width=\"656\" height=\"337\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery2-300x154.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery2-768x394.jpg 768w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/PasswdRecovery2.jpg 772w\" sizes=\"(max-width: 656px) 100vw, 656px\" \/><\/p>\n<p>Teraz:<br \/>\n<code>switch_root:\/# mount -o remount,rw \/sysroot\/<\/code><br \/>\n<code>switch_root:\/# chroor \/sysroot\/<\/code><br \/>\n<code> sh-4.2# passwd root<\/code><\/p>\n<p>Je\u017celi korzystamy z SELinux:<br \/>\n<code>sh-4.2# touch \/.autorelabel<\/code><br \/>\n<code> sh-4.2# exit<\/code><br \/>\n<code> sh-4.2# reboot<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 2. Dodanie nowej pozycji do menu GRUB.<\/p>\n<p>Z pliku <code>\/boot\/grub2\/grub.cfg<\/code> kopiujemy pierwszy wpis menuentry i wklejamy go do pliku <code>\/etc\/grub\/40_custom<\/code>. Po wpisie\u00a0<code>rhgb quiet<\/code> dodajemy target w kt\u00f3rym chcemy aby system zosta\u0142 uruchomiony np. dla targetu <em>rescue<\/em> dodajemy wpis <code>systemd.unit=rescue.unit.<\/code><\/p>\n<pre> menuentry 'Red Hat Enterprise Linux Server, with Linux 3.10.0-123.el7.x86_64 ' --class red --class gnu-linux --class gnu --class os\r\n--unrestricted $menuentry_id_option 'gnulinux-3.10.0-123.el7.x86_64-advanced-964201bb-1e32-4794-a2f2-7a33e2fb591a' {\r\nload_video\r\nset gfxpayload=keep\r\ninsmod gzio\r\ninsmod part_msdos\r\ninsmod xfs\r\nset root='hd0,msdos1'\r\nif [ x$feature_platform_search_hint = xy ]; then\r\nsearch --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --\r\nhint='hd0,msdos1' e6c9c801-e77a-4ce0-ac89-eeb2d3a4774f\r\nelse\r\nsearch --no-floppy --fs-uuid --set=root e6c9c801-e77a-4ce0-ac89-eeb2d3a4774f\r\nfi linux\r\n16 \/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=964201bb-1e32-4794-a2f2-7a33e2fb591a ro rd.lvm.lv=vg00\/swap\r\nvconsole.font=latarcyrheb-sun16 crashkernel=auto vconsole.keymap=us rd.lvm.lv=vg00\/root rhgb quiet <span style=\"color: #ff0000;\"><strong>systemd.unit=rescue.unit<\/strong><\/span> LANG=en_US.UTF-8\r\ninitrd16 \/initramfs-3.10.0-123.el7.x86_64.img\r\n}<\/pre>\n<p>Teraz wydajemy komend\u0119:<\/p>\n<pre># grub2-mkconfig -o \/boot\/grub2\/grub.cfg<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Menu GRUB wy\u015bwietla list\u0119 bootowalnych kerneli do wyboru. Zmienia\u0107 j\u0105dra mo\u017cna strza\u0142kami g\u00f3ra i d\u00f3\u0142. Wciskaj\u0105c klawisz &#8220;e&#8221; mo\u017cna wej\u015b\u0107 do edycji danego j\u0105dra, do linii komend GRUB mo\u017cna wej\u015b\u0107 wciskaj\u0105c klawisz &#8220;c&#8221;. W trybie edycji GRUB wczytuje wybran\u0105 pozycj\u0119 z pliku \/boot\/grub2\/grub.cfg. Po wprowadzeniu zmian w trybie edycji mo\u017cna nacisn\u0105\u0107 Ctrl+x aby uruchomi\u0107 system, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/22\/grub\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;GRUB&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1327,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/862"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=862"}],"version-history":[{"count":27,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/862\/revisions"}],"predecessor-version":[{"id":1407,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/862\/revisions\/1407"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1327"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=862"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}