Touch Command не работает в bash по какой-то причине

Итак, после некоторых исследований (на 4-й, 5-й странице поиска Google! )Я читал (и также почти уверен, )что partman/preseed вычислит общий размер как сумму размеров всех разделов, не имеет значения, есть ли разделы LV, которые часть ВГ.

Если я добавлю числа максимального размера, я действительно получу ~147000 МБ. Итак, что я сделал, чтобы решить эту проблему? Ну для начала я уменьшил минимальный размер разделов в preseed файле до 1/4 или 1/2 от максимального размера, затем поставил все приоритеты выше или равными максимальному размеру (вы можете найти здесь и здесь дополнительная информация по этому поводу)

Это позволило partman/preseed успешно создать все разделы, даже если они были неподходящего размера.

Чтобы добиться нужного размера, я добавил поздний _командный сценарий, который изменил размер всех логических томов до их правильного размера.

Кроме того, чтобы сохранить все свободное пространство, которое осталось бы, если бы разбиение на разделы выполнялось вручную, я создал фиктивные разделы, которые позже удалил в том же позднем _командном сценарии.

Я знаю, что это неортодоксально, но это единственный способ работать с preseed/partman.

Вот также рецепт разбиения:

d-i partman/early_command string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/new_vg_name string rootvg
d-i partman-auto-lvm/guided_size string 34%
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/new_vg_name string infravg
d-i partman-auto-lvm/guided_size string 60%
d-i partman-auto/choose_recipe select diod
d-i partman-auto/expert_recipe diod :: \
            511 512 512 ext4                        \
            $primary{ }                             \
            $bootable{ }                            \
            method{ format }                        \
            format{ }                               \
            use_filesystem{ }                       \
            filesystem{ ext4 }                      \
            device{ /dev/sda1 }                     \
            mountpoint{ /boot }.                   \
            39999 40000 40000 ext4                  \
            $primary{ }                             \
            method{ lvm }                           \
            device{ /dev/sda2 }                     \
            vg_name{ rootvg }.                     \
            69999 70000 70000 ext4                  \
            $primary{ }                             \
            method{ lvm }                           \
            device{ /dev/sda3 }                     \
            vg_name{ infravg }.                    \
            100 1000 -1 ext4                        \
            method{ format }                        \
            format{ }                               \
            use_filesystem{ }                       \
            filesystem{ ext4 }                      \
            mountpoint{ /part1 }.                  \
            128 1000 128 ext4                       \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ system_lv }                    \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /system }.                 \
            100 1500 1000 ext4                      \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ opt_lv }                       \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /opt }.                    \
            100 2500 2000 ext4                      \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ home_lv }                      \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /home }.                   \
            100 4500 4000 ext4                     \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ usr_lv }                       \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /usr }.                    \
            100 6000 5000 ext4                     \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ root_lv }                      \
            method{ format }                        \
            format{ }                               \
            use_filesystem{ }                       \
            filesystem{ ext4 }                      \
            mountpoint{ / }.                       \
            100 5500 5000 ext4                     \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ tmp_lv }                       \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /tmp }.                    \
            100 6500 6000 ext4                     \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ var_lv }                       \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /var }.                    \
            100 7500 8000 linux-swap               \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ swap }                         \
            method{ swap } format{ }.              \
            100 1000 -1 ext4                        \
            $lvmok{ } in_vg{ rootvg }               \
            lv_name{ free1_lv }                     \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /part2 }.                  \
            100 2000 1024 ext4                      \
            $lvmok{ } in_vg{ infravg }              \
            lv_name{ chef_lv }                      \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /opt/chef }.               \
            100 4000 5000 ext4                      \
            $lvmok{ } in_vg{ infravg }              \
            lv_name{ images_lv }                    \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /images }.                 \
            100 1000 -1 ext4                        \
            $lvmok{ } in_vg{ infravg }              \
            lv_name{ free2_lv }                     \
            method{ format } format{ }              \
            use_filesystem{ } filesystem{ ext4 }    \
            mountpoint{ /part3 }                    \
           .
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select Finish
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm boolean true

0
06.10.2019, 00:31
2 ответа

Я исправил это, добавив разрыв после команды touch.

while [ $(pidof $PACKAGE) ]
do
  loopcleaner
  sleep 2

  if [ ! $(pidof $PACKAGE) ]; then
    touch /sdcard/successful.txt
    break
    exit 0;
  fi
done

(хотя я очень новичок в bash и не очень уверен в себе, если это лучший подход, поэтому любые дальнейшие изменения/предложения по его улучшению будут высоко оценены)

0
28.01.2020, 03:13

В моем случае у нас была функция псевдонима touchbash, определенная как touch -a "$@", которая только обновляла время доступа вместо (в дополнение к )времени модификации.

По умолчанию touchбудет обновляться оба раза, но наша функция bash переопределяла это.

Простое изменение функции на touch -am "$@"решило проблему.

0
20.12.2020, 12:45

Теги

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