• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

skrypt bash, grub, porównanie wyniku polecenia i ciągu znaków

Ultraszybki serwer VPS NVMe START
0 głosów
84 wizyt
pytanie zadane 24 sierpnia w Inne języki przez cyklop123 Bywalec (2,630 p.)

Piszę skrypt w bashu odnośnie detekcji czy windows jest zahibernowany czy nie.

Jeżeli windows jest zahibernowany to pierwsze 4 bajty pliku hiberfil.sys to HIBR , a jeżeli nie jest to WAKE

Skrypt porównuje te wartości z ciągiem.

Skrypt działa jeżeli jest uruchamiany w terminalu lecz jeżeli chce zaktualizować gruba to wyskakuje błąd składni w lini porównania
head -c4 $mountpoint/hiberfil.sys | grep -q HIBR

Nie mam pojęcia co to za błąd, proszę o pomoc
Błąd

Generowanie pliku konfiguracyjnego GRUB-a...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Znaleziono obraz Linuksa: /boot/vmlinuz-4.9.0-3-amd64
Znaleziono obraz initrd: /boot/initrd.img-4.9.0-3-amd64
Adding boot menu entry for EFI firmware configuration
błąd: syntax error.
błąd: Incorrect command.
błąd: syntax error.
Błąd składni w linii 208
W wygenerowanym pliku konfiguracyjnym GRUB-a wykryto błędy składni.
Proszę się upewnić, że w plikach /etc/default/grub oraz /etc/grub.d/*
nie ma błędów lub wypełnić raport o błędzie z załączonym plikiem /boot/grub/grub.cfg.new.
gotowe

Plik /etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries
# the 'exec tail' line above.

mountpoint=/media/c
device=/dev/sda4
name=""
mounted=true

if ! (mountpoint -q $mountpoint) ; then
	if ! ( mount -o ro $device $mountpoint ) ;then
		mounted=false
	else
		mounted=true
	fi
fi

if ( $mounted = true ) ; then
	if (head -c4 $mountpoint/hiberfil.sys | grep -q  HIBR ) ; then
		name="(hibernated) ";
	else
		name="(not hibernated)";
	fi
else
	name="(unrecognised)";
fi


menuentry "Windows 10 $name" --class windows --class os {
	insmod part_gpt
	insmod fat
	set root='hd0,gpt2'
	search --no-floppy --fs-uuid --set=root 46B4-6888
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Plik /boot/grub/grub.cfg.new

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="3"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  89779e05-fa58-4942-a755-3122d6dcaf12
else
  search --no-floppy --fs-uuid --set=root 89779e05-fa58-4942-a755-3122d6dcaf12
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=pl_PL
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_gpt
insmod ext2
set root='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  89779e05-fa58-4942-a755-3122d6dcaf12
else
  search --no-floppy --fs-uuid --set=root 89779e05-fa58-4942-a755-3122d6dcaf12
fi
insmod png
if background_image /usr/share/desktop-base/softwaves-theme/grub/grub-4x3.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-89779e05-fa58-4942-a755-3122d6dcaf12' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt7'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  89779e05-fa58-4942-a755-3122d6dcaf12
	else
	  search --no-floppy --fs-uuid --set=root 89779e05-fa58-4942-a755-3122d6dcaf12
	fi
	echo	'Wczytywanie systemu Linux 4.9.0-3-amd64...'
	linux	/boot/vmlinuz-4.9.0-3-amd64 root=UUID=89779e05-fa58-4942-a755-3122d6dcaf12 ro  quiet
	echo	'Wczytywanie początkowego dysku RAM...'
	initrd	/boot/initrd.img-4.9.0-3-amd64
}
submenu 'Opcje zaawansowane dla systemu Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-89779e05-fa58-4942-a755-3122d6dcaf12' {
	menuentry 'Debian GNU/Linux, za pomocą systemu Linux 4.9.0-3-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-3-amd64-advanced-89779e05-fa58-4942-a755-3122d6dcaf12' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		set root='hd0,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  89779e05-fa58-4942-a755-3122d6dcaf12
		else
		  search --no-floppy --fs-uuid --set=root 89779e05-fa58-4942-a755-3122d6dcaf12
		fi
		echo	'Wczytywanie systemu Linux 4.9.0-3-amd64...'
		linux	/boot/vmlinuz-4.9.0-3-amd64 root=UUID=89779e05-fa58-4942-a755-3122d6dcaf12 ro  quiet
		echo	'Wczytywanie początkowego dysku RAM...'
		initrd	/boot/initrd.img-4.9.0-3-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 4.9.0-3-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-3-amd64-recovery-89779e05-fa58-4942-a755-3122d6dcaf12' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		set root='hd0,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  89779e05-fa58-4942-a755-3122d6dcaf12
		else
		  search --no-floppy --fs-uuid --set=root 89779e05-fa58-4942-a755-3122d6dcaf12
		fi
		echo	'Wczytywanie systemu Linux 4.9.0-3-amd64...'
		linux	/boot/vmlinuz-4.9.0-3-amd64 root=UUID=89779e05-fa58-4942-a755-3122d6dcaf12 ro single 
		echo	'Wczytywanie początkowego dysku RAM...'
		initrd	/boot/initrd.img-4.9.0-3-amd64
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries
# the 'exec tail' line above.

mountpoint=/media/c
device=/dev/sda4
name=""
mounted=true

if ! (mountpoint -q $mountpoint) ; then
	if ! ( mount -o ro $device $mountpoint ) ;then
		mounted=false
	else
		mounted=true
	fi
fi

if ( $mounted = true ) ; then
	if (head -c4 $mountpoint/hiberfil.sys | grep -q  HIBR ) ; then
		name="(hibernated) ";
	else
		name="(not hibernated)";
	fi
else
	name="(unrecognised)";
fi


menuentry "Windows 10 $name" --class windows --class os {
	insmod part_gpt
	insmod fat
	set root='hd0,gpt2'
	search --no-floppy --fs-uuid --set=root 46B4-6888
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

 

1 odpowiedź

0 głosów
odpowiedź 24 sierpnia przez cyklop123 Bywalec (2,630 p.)
wybrane 19 września przez cyklop123
 
Najlepsza
Sprawa zamknięta, grub nie obsługuje basha. Wspiera tylko podstawowe polecenia

Podobne pytania

0 głosów
1 odpowiedź 73 wizyt
pytanie zadane 17 września w Inne języki przez robRoy Początkujący (370 p.)
+1 głos
2 odpowiedzi 325 wizyt
pytanie zadane 18 czerwca 2016 w Sieci komputerowe, internet przez ignacjusz Bywalec (2,430 p.)
0 głosów
0 odpowiedzi 64 wizyt
pytanie zadane 1 czerwca w Systemy operacyjne, programy przez smyko_k Nowicjusz (140 p.)

41,475 zapytań

80,496 odpowiedzi

159,287 komentarzy

19,795 pasjonatów

Przeglądających: 333
Pasjonatów: 26 Gości: 307

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...