Fedora не загружается в UEFI

Гораздо более чистое решение, основанное на ответе, связанном с @don_crissti. ( Фильтр Rsync: копирование только одного шаблона )

rsync -av --remove-source-files --include='*[0-9][0-9][0-9]' --include='*/' --exclude '*' /tmp/oldstruct/ /tmp/newstruct/

И отрицание:

rsync -av --remove-source-files --exclude='*[0-9][0-9][0-9]' /tmp/oldstruct /tmp/newstruct/

Исходный ответ:

Это должно сработать. Он найдет любой файл в структуре, в которой вы cd заканчиваются 3 цифрами, создаст папку назначения в / tmp / newstruct и переместит файл.

cd /tmp/oldstruct
find ./ -type f -regextype posix-basic -regex '.*[0-9]\\{3\\}' | 
  while read i; do 
    dest=/tmp/newstruct/$(dirname $i)
    mkdir -vp $dest
    mv -v $i $dest
  done

Я бы рекомендовал добавить к mkdir и mv echo перед его запуском, просто чтобы убедиться, что он выполняет то, что вы ожидаете.

Чтобы убрать 3 цифры, просто поместите do ! -regex взамен.


Вот более простой метод, основанный на rsync. Однако он вызывает rsync для каждого найденного файла, поэтому определенно не очень эффективен.

find ./ -type f -regextype posix-basic -regex '.*[0-9]\{3\}' --exec rsync -av --remove-source-files --relative {} /tmp/newstruct

1
09.04.2018, 20:32
1 ответ

В UEFI загрузчик обычно идентифицируется по уникальному UUID системного раздела EFI и пути к файлу загрузчика, которые хранятся в переменных загрузки UEFI в системной NVRAM. В отличие от старой загрузки в стиле MBR -, просто указать диск для загрузки не обязательно достаточно.

Некоторые производители систем разработали прошивку UEFI со встроенным -предположением, что ОС будет Windows, и добавили «полезную» функцию, которая сбрасывает переменные загрузки UEFI на точные значения, используемые Windows.

Начните с загрузки системы в режиме восстановления в режиме UEFI . Затем запустите efibootmgr -vкак root. Это покажет вам текущее состояние переменных загрузки UEFI. Вы также можете использовать команду blkid, чтобы получить список UUID файловой системы и разделов каждого диска, который есть в системе. UUID раздела (, указанный в выводе blkidкакPARTUUID=<value>)системного раздела EFI, должен соответствовать UUID, указанному в переменных загрузки, перечисленных командой efibootmgr -v. При необходимости вы можете использовать другие опции с efibootmgr, чтобы исправить содержимое переменных загрузки. Подробности см. в man efibootmgr.

(Обратите внимание, :прошивка UEFI использует UUID раздела , в то время как загрузчик GRUB может использовать UUID файловой системы . В blkidпервый указан как PARTUUID=, а второй — как UUID=. Не путайте два.)

Если вы обнаружите, что переменные загрузки UEFI не указывают на загрузчик Fedora и любые внесенные вами изменения не сохранятся после перезагрузки, то, скорее всего, у вас есть какая-то разновидность ошибки прошивки UEFI, о которой я упоминал ранее. Родерик В. Смит называет это загрузочным переворотом :. См. по этой ссылке список некоторых известных вариаций и обходных путей для них.

По сути, одним из возможных обходных путей является установка (копии )загрузчика либо на стандартный съемный -диск -, путь загрузки в системном разделе EFI (\EFI\boot\boot<arch>.efi, где <arch>обычно x64или, возможно, ia32на типичном оборудовании ПК.Другой способ — поместить загрузчик Linux UEFI по тому же пути, который обычно использует Windows(\EFI\Microsoft\Boot\bootmgfw.efi).

3
27.01.2020, 23:23

Теги

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