Добавление значения переменной в выражение

в initramfs типа

 #/sbin/lvm vgchange -a y
 # vgchange -a y
 #exit

если вы не можете решить проблему, напишите это

  #ls /dev/mapper

вы нашли корневой каталог (например, /dev/vgname/lvname)#перезагрузитесь, затем выберите ядро ​​на экране и выберите e, чтобы отредактировать и вставить корневое значение (например, /dev/vgname/lvname )в /boot/vmlinuxxxxx root=uuid/dev/xxx. затем ctrl+x для загрузки

If problem repeats when reboot the server

перейти к

      #/boot/grub/grub.cfg

в /vm/vmlinuz root=напишите полный путь к lv

если проблема не устранена, попробуйте исправить initramfs, как показано ниже

1.Перейдите к серверному терминалу

  # sudo rmmod floppy

    #echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklis-floppy.conf
     #dpkg-reconfigure initramfs-tools
     #update-initramfs -u
     #update-grub
     #reboot

2. Выполните это

       #/etc/initramfs-tools/scripts/local-top/forcelvm

со следующим содержанием:

       #!/bin/sh
       PREREQ=""
     prereqs()
        {
       echo "$PREREQ"
     }
     case $1 in
     prereqs)
     prereqs
    exit 0
      ;;
    esac
     . /scripts/functions
       lvm vgchange -ay

Тогда сделайте

      # chmod +x `/etc/initramfs-tools/scripts/local-top/forcelvm`
       # update-initramfs -u -k all
  1. сделать резервную копию lvm2

     #apt-get install lvm2
     #cp /usr/share/initramfs-tools/scripts/local-top/lvm2  /tmp
    

    Редактировать lvm2

        #vi /usr/share/initramfs-tools/scripts/local-top/lvm2
    

    напишите между modprobe -q dm -mod и активируйте _vg "$ROOT" добавьте эту строку для инициализации вашего lvm:

      lvm vgchange -ayactivate_vg "$ROOT" if you not find this line
    

написать ниже две строки в конце файла над выходом 0

       #lvm vgchange -ayactivate_vg "$ROOT"
       #activate_vg="$ROOT"

сохранить файл тогда

        #update-initramfs -u
        #update-grub
        #reboot
2
01.11.2021, 10:45
2 ответа

Вы можете запускать команды с временной локалью. Это должно решить вашу проблему:

daysAmount="10"   
endDate=$(LC_ALL=C date +"%b %_d %Y" -d "+$daysAmount days")   
epochNum=$(LC_ALL=C date -d "$endDate" +%s)  
1
01.11.2021, 11:55

Удалось заставить это работать.

Проверьте язык даты перед преобразованием в номер эпохи. Если ваше имя маунта отличается от американского алфавита, как пример команды «дата» здесь:

1.11.2021 (пн) 14:47:59 EET

Преобразование не будет работать.

В другой машине, где "дата" отображается вот так (американский алфавит):

Mon Nov  1 14:47:45 EET 2021

код работал отлично


Рабочий пример на машинах с разными языками см. в :https://unix.stackexchange.com/a/675661/499362

0
01.11.2021, 11:51

Теги

Похожие вопросы