LINUX.ORG.RU

Игнор загрузочной флешки с образом винды

 , ,


0

1

Всем здравствуйте, уже очень долго пытаюсь записать образ Windows 10 LTSC на флешку, испробовал много программ, но всё бесполезно. Ноут Acer Extensa 2520g, стоит Arch Linux с сырым bspwm.

Создаю новую таблицу разделов msdos для флешки в gparted, форматирую в FAT32, ставлю флаг boot, извлекаю из iso файлы с помощью acetoneiso (образ винды с оф. сайта.), монтирую флешку через mount, копирую файлы из iso на флешку. Перезагружаюсь с неё (в биосе стоит UEFI и флешка в приоритете), но начинает тупо загружаться система, как обычно, с HDD.

Etcher выдаёт ошибку, что-то не может прочитать iso.. Unetbootin показывает маленькое пустое окно с кнопкой Cancel и зависает, когда дело начинает касаться install.wim (или esd) Пробовал записать образ на DVD-RW с помощью k3b, результат тот же, тупо загружается система, диск игнорируется. dd как я понял копирует файлы на флешку и не делает её загрузочной, хотя, видимо, во всех других случаях происходит так же

Надеюсь не запутал. В Linux новичок, помогите разобраться, пожалуйста.



Последнее исправление: zepelinne (всего исправлений: 1)

Может и не стоит над «низким уровнем» так заморачиваться? Там можно утилиткой всё прожечь, только заходить на оф.страницу нужно из-под винды (либо на свой риск и страх брать её с альтернативных порталов):

To use the media creation tool, visit the Microsoft Software Download Windows 10 page from a Windows 7, Windows 8.1 or Windows 10 device.

https://www.microsoft.com/en-us/software-download/windows10ISO

NDfan
()
Ответ на: комментарий от lead_bro

Через woeusbgui записал, перезагрузился, зашёл в биос, убедился в том, что флешка в приоритете, все равно запустилась система…

zepelinne
() автор топика

монтирую флешку через mount, копирую файлы из iso на флешку.

Ну вот только не надо нести чушь.

В ISO образе Windows 10 есть файл размером более 4 Гб. И ты не можешь скопировать этот файл на FAT32, максимальный размер файла для этой файловой системы 4 Гб.

Выучи матчасть, а уже потом пори чушь на форуме.

Если тебе нужно в Linux создать загрузочную флешку с установщиком Windows 10, то используй woeusb:

woeusb --device win_10.iso /dev/sdc

Где /dev/sdc - имя устройства флешки, а win_10.iso - iso образ Windows 10.

anonymous
()
Ответ на: комментарий от torvn77

Почему просто не запишешь iso’шник на флешку с помощью dd?

Зачем?
С образами Windows это никогда не работало, они не гибридные – не несут таблицы разделов с iso9660 с основным содержимым, загрузчик не умеет с этим жить.

bormant ★★★★★
()
Ответ на: комментарий от puffy

Образ Windows не является гибридным, следовательно не может быть записан через dd

В огороде бузина ;)
Записать можно, кто бы запретил, загрузиться с него нельзя ;)

bormant ★★★★★
()
Ответ на: комментарий от anonymous

В ISO образе Windows 10 есть файл размером более 4 Гб

Не во всяком.
Но если есть, то на FAT32 его не записать, да.
А NTFS годится обычно только для Legacy BOOT (но в некоторых UEFI бывает драйвер для NTFS).

По поводу woeusb: это обычный сценарий оболочки, почитайте на досуге, что именно он делает.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 3)

Каковы шансы того, что исходный ISO кривой?
Контрольная сумма ISO совпала с указанной в источнике? Источник стоит доверия (точно оф.сайт MS)?

Какой, кстати, из образов?
Точно 64-битный?

На другой машине с UEFI флешка тоже не грузится?

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)

А далась тебе эта флешка.

стоит Arch Linux…

…значит наверно груб есть.

извлекаю из iso файлы…

Все тоже самое, только не на флешку, а на любой подходящий раздел жесткого диска. Если не справится УЕФИ своими средствами, то в груб настраивашь загрузку виндовс и запускаешь грубом.

Уже давно отказался от возни с виндовс-флешками. Таким способом устанавливал и семерку и десятку, в легаси и ЕФИ.

andytux ★★★★★
()
Ответ на: комментарий от bormant

Не во всяком.

В последнем скаченном с сайта Microsoft (20H2) точно есть файл более 4 Гб.

По поводу woeusb: это обычный сценарий оболочки, почитайте на досуге, что именно он делает.

И что из этого? Я его использовал и он создал флешку с FAT32 и всё работало.

anonymous
()
Ответ на: комментарий от anonymous

Путаетесь в показаниях.
woeusb
в районе строк 170 и 1107 содержит:

    if [ "${target_filesystem_type}" == FS_FAT ]; then
        if ! check_fat32_filesize_limitation \
                "${source_fs_mountpoint}"; then
            exit 1
        fi
    fi

...

# Check every file in source directory for files bigger than max fat32 file size (~4GB)
check_fat32_filesize_limitation(){
    check_function_parameters_quantity 1 $#
    local -r source_fs_mountpoint="${1}"

    while IFS= read -r -d '' file; do
        if (( "$(stat -c '%s' "${file}")" > 4294967295 )); then # Max fat32 file size is 2^32 - 1 bytes
            printf_with_color \
                red \
                'Error: File "%s" in source image has exceed the FAT32 Filesystem 4GiB Single File Size Limitation and cannot be installed.  You must specify a different --target-filesystem.\n' \
                "${file}"
            printf_with_color \
                red \
                'Refer: https://github.com/WoeUSB/WoeUSB/wiki/Limitations#fat32-filesystem-4gib-single-file-size-limitation for more info.\n'
            return 1
        fi
    done < <(find "${source_fs_mountpoint}" -type f -print0)
    return 0
}

Т.е.
1) либо раздел в FAT32, но в образе нет файлов более 4 ГБ,
2) либо, если в образе есть файлы более 4 ГБ, раздел в NTFS. В этом случае у RUFUS заимствуется NTFS драйвер для UEFI:
в районе строк 190 и 1035
        if [ "${target_filesystem_type}" == FS_NTFS ]; then
            create_uefi_ntfs_support_partition \
                "${target_device}"
            install_uefi_ntfs_support_partition \
                "${target_device}2" \
                "${temp_directory}" \
                "${target_device}"
        fi
...

# Create UEFI:NTFS partition to support booting UEFI bootloader in NTFS filesystem where some UEFI firmwares are not able to do so
# https://github.com/pbatard/uefi-ntfs
# This routine assumes that there's only one partition on the disk, and the trailing 512KiB space is not partitioned
# This routine should be run after create_target_partition and only on target partition's filesystem is NTFS
# target_device: The target device's entire deice file
create_uefi_ntfs_support_partition(){
    check_function_parameters_quantity 1 $#

    local -r target_device="$1"

    # FIXME: The partition type should be `fat12` but `fat12` isn't recognized by Parted...
    # NOTE: The --align is set to none because this partition is indeed misaligned, but ignored due to it's small size
    parted \
        --align none \
        --script \
        "${target_device}" \
        mkpart \
        primary \
        fat16 \
        --  \
        -1024s \
        -1s

    return "$?"
}

# Install UEFI:NTFS partition by writing the partition image into the created partition
# FIXME: Currently this requires internet access to download the image from GitHub directly, it should be replaced by including the image in our datadir
# uefi_ntfs_partition: The previously allocated partition for installing UEFI:NTFS, requires at least 512KiB
# download_directory: The temporary directory for downloading UEFI:NTFS image from GitHub
# target_device: For workaround_make_system_realize_partition_table_changed
install_uefi_ntfs_support_partition(){
    check_function_parameters_quantity 3 $#

    local -r uefi_ntfs_partition="$1"; shift
    local -r download_directory="$1"; shift
    local -r target_device="$1"

    if ! wget \
        --directory-prefix="${download_directory}" \
        https://github.com/pbatard/rufus/raw/master/res/uefi/uefi-ntfs.img; then
        printf_with_color yellow \
            '%s: %s\n' \
            "${FUNCNAME[0]}" \
            "Warning: Unable to download UEFI:NTFS partition image from GitHub, installation skipped.  Target device might not be bootable if the UEFI firmware doesn't support NTFS filesystem."
        return 0
    fi

    # Write partition image to partition
    dd \
        if="${download_directory}/uefi-ntfs.img" \
        of="${uefi_ntfs_partition}"

}

который, в свою очередь, вот из этого проекта:
https://github.com/pbatard/uefi-ntfs

И что из этого?

Поди знай... Но хуже точно не станет ;)

bormant ★★★★★
()

С линукса удалось сбежать после переключения с UEFI на Legacy в BIOS.

Grub’a нет, делал systemd-boot.

Файл был меньше 4 гб.

Всем спасибо за помощь и за woeusb, удобная штука.

zepelinne
() автор топика
Ответ на: комментарий от anonymous

В последнем скаченном с сайта Microsoft (20H2) точно есть файл более 4 Гб.

Точно-точно? Самый большой файл в образе Windows 10 x64 20H2:
sources/install.esd 3_974_183_216 байт, это меньше 4 ГБ.

bormant ★★★★★
()
Ответ на: комментарий от bormant

Что с ним спорить? Я в первом предложении написал, что образ Windows 10 LTSC. Насколько я знаю там вырезано все лишнее, соответсвенно образ должен меньше весить. Или я чего-то не понимаю? И у меня получилось скопировать его на флешку без ошибок, проблема была в том, что образ не запускался.

zepelinne
() автор топика
Ответ на: комментарий от zepelinne

Насколько я знаю там вырезано все лишнее, соответсвенно образ должен меньше весить. Или я чего-то не понимаю?

Если в нем оригинальный install.esd, то меньше. Если распакованный install.wim — не факт, что меньше. MS с 2014 применяется новый способ сжатия образов (/compress:recovery, обычно применяется расширение .esd вместо .wim), примерно на 30% эффективнее прежнего (/compress:maximum).

Но поскольку имела место запись на раздел FAT32 содержимого iso без ошибок, то файлов более 4 ГБ в образе не было ;)

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от anonymous

В ISO образе Windows 10 есть файл размером более 4 Гб.

В LTSC? Мне кажется нет ещё. В последних двух апдейтах обычной винды да, install.wim перевалил за 4 гига. Я устанавливал следующим образом на ноут с UEFI (secure boot включен, legacy boot выключен): fat32, копируем на флешку всё кроме install.wim, сжимаем install.wim чтобы влез на fat32 (погугли), копируем install.wim.

UPD: реплай не тому человеку, но уже исправлять не буду.

Но в случае LTSC должно влезать и так. Соответственно всё должно просто работать после копирования файлов на флеху, для UEFI нет никакой специфики. Вот гайд, например: https://itsfoss.com/bootable-windows-usb-linux/

Как вариант могу посоветовать вот что:

  1. Залить на флеху ventoy, это такой загрузчик, который находит все ISO-образы на флехе и делает меню для выбора и загрузки их.
  2. Положить ISO-образ с виндой на флеху, попробовать установить таким образом. У меня ventoy исошку винды запускает, но установку делать я таким образом не пробовал.

https://www.ventoy.net/en/doc_start.html

А если у тебя и ventoy не загрузится, который основан на grub, то дело уже не в винде. Тогда разбирайся со своим UEFI.

Кстати, вспомнил. У меня ventoy в UEFI не загружался с mbr флехи, только gpt. Может тебе тоже именно это поможет (я имею ввиду с обычной виндовой инсталляшкой).

Ну и если будешь заливать ventoy, учти что для secure boot нужно подписать его: https://www.ventoy.net/en/doc_secure.html

vyazovoi ★★★
()
Последнее исправление: vyazovoi (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.