Pull to refresh

Comments 13

fdisk $DEViCELINK <<EOF
n			# создать новый раздел
p			# печать раздела
1			# номер раздела


Поправьте комментарий, пожалуйста. p — это «primary partition», а не «печать раздела».
А еще в этом же скрипте было бы не плохо выставлять типы разделов (команда t у fdisk), те, что проставляются по умолчанию, не всегда соответствуют реальности.
типы разделов не используются в реальности (только бут раздел в винде в проводнике скрыть)
Разумеется. Но правильно проставленные типы вместе с внятными метками разделов позволяют проще и быстрее ориентироваться в том, какая система разделов на носителе и что где находится. Можно называть это правилом хорошего тона, перфекционизмом, занудством или чем угодно еще. Но когда я больше недели не трогаю флешку, на которой больше одного раздела, я предпочту глянуть на таблицу разделов и увидеть что где находится, хотя бы по типам.
В данном случае это именно печать, т.к. это все делается из под ubuntu и запустив в эту утилиту нажав -m- на клавиатуре вылезет справка:
Command (m for help): m

Help:

DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag

Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Вы не правы, смотрите:
$fdisk ./file.img 

Добро пожаловать в fdisk (util-linux 2.31.1).
Изменения останутся только в памяти до тех пор, пока вы не решите записать их.
Будьте внимательны, используя команду write.

Устройство не содержит стандартной таблицы разделов.
Создана новая метка DOS с идентификатором 0x9ad59249.

Команда (m для справки): n
Тип раздела
   p   основной (0 первичный, 0 расширеный, 4 свободно)
   e   расширенный (контейнер для логических разделов)
Выберите (по умолчанию - p): p
Номер раздела (1-4, по умолчанию 1): 1
Первый сектор (2048-524287, по умолчанию 2048):  
Последний сектор + число секторов или + размер{K,M,G,T,P} (2048-524287, по умолча�
Создан новый раздел 1 с типом 'Linux' и размером 255 MiB.
Команда (m для справки): 

Как говорится — опа…

А вообще, для кого эта статья?
После команды «n» смысл «p» меняется.

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):

С наступившим! А возможно как-то сделать чтобы UBOOT запускал recovery, если основная система не стартовала в прошлый раз?
По крайней мере препятствий для этого нет. UBOOT есть возможность загружать пользовательское ПО, т.е то что вы сами напишите. Конечно и в существующем варианте uboot довольно широкий набор команд из которых можно состряпать необходимый скрипт. Но на мой взгляд для восстановления упавшей системы проще использовать каскадно монтируемую файловую систему, вот тут можно почитать про неё, правда kernell не поддерживает такого и патчи нужно будет накладывать вручную. Я планирую затронуть эту тему в одной из статей.
Ждем продолжения. Хотя, конечно, весть это материал для одной статьи.
Пара вопросов, если можно:

  1. kernel с одной буквой 'l' на конце пишется или с двумя? А то неловко даже как-то ;)
  2. Решение собрать прошивку родилось из за отсутствия в свободном доступе образа для этой платы (Olimex A13-Olinuxino).
    Вот тут вот есть какие-то образы. Что с ними не так? Для sd карты как раз.
  3. Не понятно для кого статья, для новичков или для опытных? Если для опытных, то наверное им не очень будет это интересно, а для новичков очень много недосказанностей, которые оборачиваются бесконечными тырканиями с железкой. Дальше по списку то, что сильно бросается в глаза.
  4. alexac прав по поводу команды p в Вашем скрипте. Это не печать раздела, а вторичное меню после предыдущей команды. Просто запустите fdisk руками, выполните все те же команды, что и в скрипте и увидите, что после первой команды (создание нового раздета) идет выбор: p — primary, e — extended.
  5. Предполагается что уже стоит весь необходимый софт для сборки.
    Простите, вот тут у меня бомбануло… Если это статья для новичков, и каждый, кто собирал всякие загрузчики, ядра, какие-то сложные сборки, тот знает, что toolchain это не всегда просто. Ну так укажите в статье, какой взяли, укажите версию, версию дополнительных утилит(банально make хотя бы). Почему Вы взяли arm-linux-gnueabihf-, а не arm-linux-gnueabi- например? Это сильно упростит жизнь новичкам.
  6. И начнем сборку с конфигурирования загрузчика.
    Ну так где конфигурирование? Ну можно было написать export ARCH=arm; make A13-OlinuXino_defconfig
  7. DEViCELINK=/dev/sdb
    А если у новичка /dev/sdb это второй раздел его диска? Ни пояснений, ни предостережений...
  8. # создать раздел с отступом 2MiB
    А не 2К там?

И да, хочется «шаманства» прям и «кастомной» прошивки. А получается скомпилировать стоковый загрузчик со стоковым конфигом. Кликбейт какой-то прям, но может в 3-й статья будет прям хардкор? Очень хочется)
  • С готовыми образами проблема в том что в них либо android либо debian да и предустановленный xorg не добавляет лишнего места, не говоря уже о том что там ядро 3.4. В то время как требуется голая ubuntu.
  • Даже професионалам непросто вспомнить что было когда то, спустя некоторое время. Вот и решил оставить алгоритм.
  • toolchain ставить не так сложно на самом деле, да и гайдов полно по всему нету. А вот сборки от начала до конца на версию ядра которое приглянулось не найти.
  • Чиатйте выше, файл конфигурации A13-OlinuXino_defconfig подгружается отдельно когда открывается GUI.
  • нет там не 2К подробнее про структуру первого MiB на SD карте можно найти тут
подробнее про структуру первого MiB на SD карте можно найти тут

и все же где?
Когда-то давно довелось плотно познакомиться с этой платой. Образы загрузочных SD-карт с Debian и Android всегда были доступны вот здесь. Полноценную загрузку с USB сделать так и не удалось, но частичная вполне работала. Для загрузки всё ещё требовалась SD-карта, на ней размещался uboot, его конфиг и образ ядра uImage. Всё остальное можно было перенести на USB-накопитель. Для этого нужно создать файл uEnv.txt в корне первого раздела загрузочного носителя и добавить в него строку
root=/dev/sda1
Sign up to leave a comment.

Articles