Если это единственный процесс, записывающий в каталог, вы можете создать временный файл, извлечь файлы не в подробном режиме, а затем просмотреть те, у которых время изменения новее, чем у временного файла
напр.
MYTMP=$(mktemp)
tar --skip-old-files --extract --file=2019-02-10.tar.gz
find. -cnewer $MYTMP
rm $MYTMP
Если вы прервете процесс загрузки в меню выбора GRUB 2 и перейдете в оболочку, вы сможете просмотреть список подключенных устройств, выполнив команду ls
.
В моем случае USB-накопитель был (hd0,msdos1)
.
Сначала я изменил файл /boot/grub/grub.cfg
, добавив в него следующее:
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
# =================== BEGIN MODIFICATION ===================
if [ -s (hd0,msdos1)/grub_boot_config ]; then
set next_entry=0;
fi
# =================== END MODIFICATION ===================
if [ "${initrdfail}" = 2 ]; then
set initrdfail=
elif [ "${initrdfail}" = 1 ]; then
...
где next_entry=0
— это значение $prefix/grubenv
, если бы я запустил sudo grub-reboot 0
.
Это работает, но не сохраняется при обновлении ядра, так как выполняется пересборка/boot/grub/grub.cfg
Затем я изменил /etc/grub.d/00_header
, добавив следующее:
cat << EOF
if [ -s \$prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
EOF
# =================== BEGIN MODIFICATION ===================
cat << EOF
# =================== BEGIN MODIFICATION ===================
if [ -s (hd0,msdos1)/grub_boot_config ]; then
set next_entry=0;
fi
# =================== END MODIFICATION ===================
EOF
# =================== END MODIFICATION ===================
cat <<EOF
if [ "\${initrdfail}" = 2 ]; then
set initrdfail=
elif [ "\${initrdfail}" = 1 ]; then
...
и выпустил sudo update-grub
, который затем сгенерировал/boot/grub/grub.cfg
В результате, если USB-флешка подключена и содержит файл grub_boot_config
(, он может быть пуст )в корне, тогда (hd0,msdos1)/grub_boot_config
завершится успешно и установит next_entry=0
.
Следующим шагом по улучшению будет включение0
(или любой другой элемент меню, который должен быть загружен в )в файле, и сценарий должен прочитать его и установить для него next_entry
, а также заставить его искать этот файл на каждом диске, а не только (hd0,msdos1)
.
В любом случае получается, что /boot/grub/grub.cfg
очень устойчив к опечаткам, так что маловероятно, что вы сломаете свою систему, выполнив эти модификации (это я тестировал на чистой ВМ ).
Раньше существовала программа Multisystem. Я вижу, что это все еще рядом. Обычно это программное обеспечение, которое позволяет устанавливать несколько дистрибутивов на USB-накопитель. Способ, которым вы могли бы использовать его (, и я использовал его ), заключается в том, чтобы использовать его для загрузки с grub (USB-накопителя ). Более новый инструмент, который я вижу, называется Ventoy, но я им не пользовался. Похоже, там такой же подход. По сути, у меня был GRUB в кармане. В противном случае я загружался в Windows. У меня не было специально установлено grub (), и я также выполнял двойную загрузку, используя USB-накопитель для загрузки в Debian. Есть более чистые способы сделать это, но я думаю, что это было бы проще.