Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Установка Ubuntu/Xubuntu на девайс, похожий на Wintel (http://forum.oszone.net/showthread.php?t=323291)

crashsoft 30-01-2017 10:12 2707433

Установка Ubuntu/Xubuntu на девайс, похожий на Wintel
 
Добрый день.

Попался мне в руки девайс, похожий на этот:
Скрытый текст


Основные характеристики такие:

Intel Bay Trail-T CR up to 1.83GHz Atom Z3735F
2GB DDR3L
64GB/32G(16G to 128GB) (EMMC) standard 32G.

На нём была установлена Ubuntu, пароль от которой был давно потерян. Поэтому я решил установить эту ОС заново. Решив погуглить перед этим делом, я вычитал, что для того, чтобы поставить ОС на подобные девайсы, нужно использовать дистрибутив amd64 + скопировать bootia32.efi в EFI/BOOT установочного носителя. Скачал ubuntu-16.04.1-desktop-amd64.iso, добавил bootia32.efi на носитель. При установке ОС разбил диск на 3 части:

EFI - 100 МБ - fat32
swap - 2 ГБ
/ - всё остальное место - ex4

По окончанию установки появилось сообщение "Не удалось установить пакет grub-efi-ia32 в /target/". При попытке восстановить GRUB с помощью команды grub-install появилось сообщение "this GPT partition label contains no BIOS Boot Partition". В интернете нашёл совет, что нужно создать раздел 1-2 МБ с флагом bios_grub. В итоге я пересоздал диск с этим разделом + EFI + swap + /. В конце установки ОС снова появилась ошибка о том, что не удалось установить пакет grub-efi-ia32. Что еще можно сделать в данном случае?

gannet 30-01-2017 12:22 2707464

Цитата:

Цитата crashsoft
скопировать bootia32.efi в EFI/BOOT установочного носителя »

Не совсем пойму - зачем, если grub-efi-ia32 устанавливается автоматически и, скорее всего, тот файл не даёт ему установиться? Или Вы устанавливаете, загрузившись c флешки в legacy-режиме вместо UEFI? Почему бы не сделать по руководству
P.S. по поводу "this GPT partition label contains no BIOS Boot Partition", возможно, вы просто ошиблись на этом этапе (обратите внимание на скрин и текст над ним)

crashsoft 30-01-2017 15:23 2707527

gannet,
Цитата:

Цитата gannet
зачем, если grub-efi-ia32 устанавливается автоматически »

Дело в том, что без этого файла я не вижу флешку в boot-меню, чтобы с нее запустить установку Ubuntu.

Цитата:

Цитата gannet
Или Вы устанавливаете, загрузившись c флешки в legacy-режиме вместо UEFI? »

Я, если честно, не могу точно сказать в каком режиме я загружаюсь с флешки, я ещё новичок в этом деле. В BIOS можно выбрать "First boot device": UEFI или Legasy - я выбирал и то, и другое. Попробовал еще раз установить: загрузился с флешки, сделал новую разметку (300 МБ - системный раздел EFI, 2 ГБ - swap, 28 ГБ - система /), по окончании установки получил сообщение: "Не удалось установить пакет grub-efi-ia32 в /target/". Еще раз перечитал документацию, загрузился в Live-режиме, в GParted сделал новую разметку в GPT, сделал раздел 100 МБ в fat32, еще один 2 ГБ - swap, и системный - 28 ГБ. Перед установкой появилось сообщение: "Запущенный установщик в режиме UEFI, но это выглядит так, что возможно уже установлена другая ОС в режиме совместимости с BIOS...", я выбрал "продолжить в режиме UEFI". Но в итоге получил такую же ошибку. Что я не так сделал? Стоит ли пытаться установить загрузчик?

gannet 30-01-2017 19:04 2707584

crashsoft, 1. Почему grub-efi-ia32,а не grub-efi-amd64, вы же вроде 64-bit ОС ставите? Вообще, большинство плат поддерживают только 1 разрядность UEFI, загружаться будет только 32 или 64 битная ОС
2. http://linuxmint.info/forum/thread52-1.html, я так понимаю, про
это и это

crashsoft 31-01-2017 13:34 2707744

gannet,
Цитата:

Цитата gannet
1. Почему grub-efi-ia32,а не grub-efi-amd64, вы же вроде 64-bit ОС ставите? Вообще, большинство плат поддерживают только 1 разрядность UEFI, загружаться будет только 32 или 64 битная ОС »

Если я использую x86 образ Ubuntu, то в нем нет каталогов EFI/BOOT. И загрузится я с флешки не могу - устройства нет в списке boot-меню, даже если я создам эти каталоги и скопирую файл bootia32.efi.
Если я использую x64 образ Ubuntu, в нём есть эти каталоги, но флешка всё равно не отображается в списке устройств в boot-меню, до тех пор, пока я в EFI/BOOT не добавлю файл bootia32.efi.

gannet 31-01-2017 14:08 2707746

Цитата:

Цитата crashsoft
Если я использую x86 образ Ubuntu, то в нем нет каталогов EFI/BOOT. И загрузится я с флешки не могу - устройства нет в списке boot-меню, даже если я создам эти каталоги и скопирую файл bootia32.efi.
Если я использую x64 образ Ubuntu, в нём есть эти каталоги, но флешка всё равно не отображается в списке устройств в boot-меню, до тех пор, пока я в EFI/BOOT не добавлю файл bootia32.efi. »

Понял, то есть UEFI у вас 32-bit:)
Кстати, первая ссылка из гугла на вашу ошибку)) (это и следующее сообщение)

crashsoft 31-01-2017 14:36 2707752

gannet,
Цитата:

Цитата gannet
Понял, то есть UEFI у вас 32-bit
Кстати, первая ссылка из гугла на вашу ошибку)) (это и следующее сообщение) »

Спасибо :) Хотелось бы у вас уточнить: мне нужно создать раздел efi/boot, swap, / и при установке ОС я выбираю efi/boot как загрузочный раздел EFI или должен быть efi/boot, EFI, swap, / и при установке я выбираю раздел efi/boot для установки загрузчика? По той ссылке мне не очень понятно, что в итоге получилось.

gannet 31-01-2017 18:29 2707794

crashsoft, раздел efi(fat32) ставите как загрузочный EFI(он же /efi/boot), swap как swap, а системный раздел как /.
То есть основным отличием от bios-legacy является разделение загрузочного раздела (кстати, у раздела efi должен быть соответствующий загрузочный флаг) и системного /.

crashsoft 01-02-2017 11:52 2707965

gannet, попробовал сделать так:
Скрытый текст












Но получил всё ту же ошибку. Также я пробовал выбирать раздел для установки загрузчика не /dev/mmcblk0, а /dev/mmcblk0p1, то есть раздел с EFI, но это не помогло. Может я неверно загрузочный флаг указал для EFI?

James Marsh 01-02-2017 22:19 2708165

Debian 32х битный в efi режиме при автоматической разметке предлагает так
Картинко 1


Обратите внимание на первый и последний "недоразделы"

А убунта 64битная после выбора стереть все и установить в gparted показывает следующее:

Картинко 2

gannet 02-02-2017 10:59 2708258

crashsoft, а вы не пробовали из под Live сделать chroot на установленную ОС и попробовать установить туда grub-efi-ia32? Быть может, в таком режиме он вам скажет больше - какая операция не удалась, какого пакета не хватает... А уже потом, если удастся, делать grub2-update
Кстати, все-таки интересно, в том ли режиме у вас флешка ОС подгружает, проверьте:
Код:

[-d /sys/firmware/efi] && echo UEFI || echo BIOS

crashsoft 02-02-2017 11:26 2708268

James Marsh, я попробовал установить Ubuntu x64 в автоматическом режиме. При установке появилось сообщение: ""Запущенный установщик в режиме UEFI, но это выглядит так, что возможно уже установлена другая ОС в режиме совместимости с BIOS...", я нажал вернуться и установка продолжилась. В конце загрузчик был установлен без ошибок, но после перезагрузки в boot-меню я не увидел возможность загрузить установленную ОС:
Скрытый текст



GParted показывает такую разметку:
Скрытый текст



А если установить ОС в режиме UEFI, то в конце установки появляется сообщение
Скрытый текст



GParted показывает это:
Скрытый текст



crashsoft 02-02-2017 12:01 2708277

gannet,
Цитата:

Цитата gannet
а вы не пробовали из под Live сделать chroot на установленную ОС и попробовать установить туда grub-efi-ia32? Быть может, в таком режиме он вам скажет больше - какая операция не удалась, какого пакета не хватает... А уже потом, если удастся, делать grub2-update »

Хочу попробовать. Только, всё-таки, куда должен быть установлен загрузчик в данном случае: в корень диска mmcblk0 или в раздел EFI - mmcblk0p1?
Цитата:

Цитата gannet
[-d /sys/firmware/efi] && echo UEFI || echo BIOS »

А как это проверить? Я попробовал ввести команду в терминале в Live-режиме, но ничего не получилось.

gannet 02-02-2017 13:17 2708295

Цитата:

Цитата http://askubuntu.com/questions/162564/how-can-i-tell-if-my-system-was-booted-as-efi-uefi-or-bios
Проверить, существует ли файл /sys/firmware/efi. Он не появляется при загрузке в BIOS-режиме.

#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

Ну или dmesg | grep "EFI v", если чего выведет - UEFI!
А загрузчик в UEFI работает по другому принципу: биос больше не передает контроль диску, который подгружает установленный в его корень загрузчик (mmcblk0). Наоборот, существует раздел EFI, помеченный как загрузочный, в нем располагаются файлы загрузчиков (стандартные) установленных на компьютере ОС, к ним прилагаются конфиги (позволяют загружать вашу установленную ОС, которая может быть даже не на разделе диска, а в файле-"виртуальном диске", например vhd, wim..). Соответственно, загрузчик устанавливается на этот раздел! И если ОС установлено несколько, выбрать в какую ОС загружаться, вы можете прямо из БИОС))

crashsoft 03-02-2017 09:55 2708557

gannet,
выполнил команду dmesg | grep "EFI v" и получил ответ [0.000000] efi: EFI v2.40 by INSIDE Corp.. Я правильно вас понял, что нужно попробовать через chroot установить загрузчик на раздел EFI?

crashsoft 03-02-2017 10:21 2708562

gannet, попробовал всё-таки установить GRUB через chroot по этой инструкции, но что-то пошло не так:
Скрытый текст




gannet 03-02-2017 10:53 2708579

crashsoft, указанная вами инструкция для bios-legacy загрузчика
Вам примонтировать надо системный раздел, т.е. mmcblk0p3 (к ESP-разделу доступ по-другому получают, но оно вам и не надо). И попробовать установить пакет grub-efi-ia32 (или grub-efi-ia32-bin) и посмотреть выхлоп. Может он требует чего?
Также почитайте мануал, обратите внимание на раздел Регистрации загрузчика EFI. Единственное, будьте осторожны с утилитой efibootmgr, он работает с EFI NVRAM модулем на плате))
Если и с этим не выйдет, тогда оставьте этот grub c его ошибками и попробуйте установить другой загрузчик.

crashsoft 03-02-2017 12:08 2708603

gannet, прошу прощения за глупые вопросы: я монтирую раздел mmcblk0p3: sudo mount dev/mmcblk0p3 /mnt, а как мне дальше установить пакет grub-efi-ia32 (или grub-efi-ia32-bin)?

gannet 03-02-2017 12:47 2708618

crashsoft, что-то вроде такого:
Код:

chroot /mnt apt-get update
chroot /mnt apt-get -y install grub-efi-ia32-bin grub-efi-ia32 grub-common grub2-common

(отсюда, там и про добавление нужных источников пакетов есть, но нумерация разделов не совпадает)
P.S. по rEFInd на rodbooks инструкция та еще,
вот с хабра
Хотите также?

Процесс установки из под Linux необычайно прост. Все способы описаны на официальном сайте, устанавливать можно практически из любой ОС. Для начала посетите эту страничку и скачайте .deb- или .rpm-пакет.

Если у вас редкий дистрибутив вроде Slackware или Gentoo, то лично я вам помочь не смогу, но на сайте есть обычный .zip-архив и другие варианты установки, так что если уж вы работаете в подобных дистрибутивах, то наверняка поставить своими силами вы сможете без проблем.


Сделайте бэкап EFI-директории:
cp -r /boot/efi/EFI /boot/EFI.bkp
После загрузки пакета, выполните:
cd Downloads или cd Загрузки
И установите пакет:
sudo dpkg -i <имя пакета>.deb или sudo dnf install <имя пакета>.rpm
В моем случае dpkg не мог иногда подтянуть зависимости, если у вас возникнут такие же трудности, то установите gdebi (sudo apt-get install gdebi) и выполните sudo gdebi <имя пакета>.deb.

Если у вас RHEL или CentOS, то используйте yum вместо dnf.

В логах установки пакета можно отследить лог установки rEFInd, в котором возможно будут ошибки их надо сразу отследить. Однако по моему опыту ошибок не возникает, если всё сделать правильно. Проверить результат работы установщика rEFInd можно, воспользовавшись утилитой efibootmgr, там первым приоритетом должна должен быть именно rEFInd Boot Manager.

Установить rEFInd повторно, если пакет уже установлен, можно с помощью команды:
refind-install
Установку rEFInd первым приоритетом можно произвести в ручную, с помощью команды:
refind-mkdefault

Перезагружаемся.
источник

James Marsh 03-02-2017 21:37 2708785

Ок. А если грузануться с убунты, запустить gparted, стереть все разделы и создать таблицу разделов типа gpt, а потом в автоматическом режиме попробовать?

В общем нашел в интернетах

http://unix.stackexchange.com/questi...talling-debian

Нижний пост на странице

В виртуал-боксе попробовал - 1 раз загрузился, но потом что-то не того. Попробуйте на реальном железе.


https://www.debian.org/devel/debian-installer/ - Debian Installer Stretch RC 2 release установился без ругани. Первый раз загрузился. Потом таки опять дальше эфи шелла не пошло.

crashsoft 07-02-2017 17:31 2709741

gannet, James Marsh, ох, ребята, вы не поверите как решилась проблема. Я пробовал установить загрузчик
Код:

chroot /mnt apt-get update
chroot /mnt apt-get -y install grub-efi-ia32-bin grub-efi-ia32 grub-common grub2-common

В результате получил ошибку, что без интернета команды не выполнятся. Так как с интернетом были проблемы, точнее его не было, я всё-таки пришёл с этим устройством в место, где он есть) Подключил интернет, заново переразметил диск в GPT, сделал раздел 500 МБ в FAT32 и флагами boot и esp, раздел swap 2 ГБ и раздел / в ex4. Заново начал устанавливать Xubuntu, но во время установки она докачивала какие-то пакеты. Но что самое удивительное, grub установился без ошибок, хотя всё время я получал сообщение "Не удалось установить пакет grub-efi-ia32 в /target/". Это значит что сам установщик определил, какие пакеты нужны для grub, сам их скачал и установил? Наверно, так есть, только жалко, что неделю времени пришлось потратить на эксперименты.

Спасибо вам за помощь!

Остался у меня небольшой вопрос. Так как UEFI x32, почему тогда не получается загрузиться с флешки с образом Ubuntu x32, а только x64? Файлик bootia32.efi я копирую в EFI/BOOT в корне флешки (хотя у x32 образа этих каталогов нет, а у x64 есть). Или это невозможно?

gannet 08-02-2017 07:55 2709871

crashsoft, Кроме загрузчика, который передает управление от БИОС-UEFI самой ОС (на нужном разделе, с заданными параметрами загрузки), должен быть еще и поддерживающий UEFI, установленный\настроенный загрузчик в самой ОС. Он уже зависит от битности не UEFI, а самой ОС. Сравните списки файлов\пакетов предлагаемых образов Ubuntu х64 и х86 по слову efi и вы даже на этом этапе увидите разницу. Кроме того, разница наверняка есть и в запакованной LiveOS.
Возможно, у Ubuntu есть другой установщик, поддерживающий х86 (James Marsh вам показывал пример Debian), однако даже в этом случае с установкой проблемы не заканчиваются, потому что х86, она же 32bit в основном рассматривается как ОС для устаревшего оборудования, некоторые дистры от нее отказываются, и нововедения вроде SoC уже не вызывают у разработчиков должного энтузиазма, чтобы они всерьез взялись за разработку драйверов для х86 ОС, поэтому проблемы с последними вам в 32-битной ОС обеспечены(( Видел жалобы в основном на сетевые адаптеры.

crashsoft 08-02-2017 09:32 2709884

gannet, спасибо за информацию!


Время: 10:20.

Время: 10:20.
© OSzone.net 2001-