Rootfs linux ��� ���

Содержание
  1. Образ rootfs
  2. Содержание
  3. Что такое rootfs
  4. Для чего нужен rootfs
  5. Где скачать rootfs Росы
  6. Порядок скачивания последней сборки rootfs
  7. Как собрать rootfs самому
  8. Пример использования rootfs
  9. Пример использования на BTRFS для быстрого клонирования контейнеров
  10. Запуск 32-битного контейнера на 64-битном хосте
  11. Ubuntu Wiki
  12. RootfsFromScratch
  13. Using rootstock
  14. Building a root filesystem image instead of a tarball
  15. Using a qemu image with full emulation
  16. Connect your emulated machine to a real network
  17. Using qemu user mode emulation (with chroot)
  18. Download a pre-built image
  19. Bugs and Problems
  20. Write/rootfs
  21. Содержание
  22. Введение [ править ]
  23. Установка rootfs на SD-карту с помощью alt-rootfs-installer [ править ]
  24. Примеры создания загрузочных SD-карт [ править ]
  25. Jetson Nano [ править ]
  26. ЭЛВИС Салют ЭЛ24ПМ2 (mcom02) [ править ]
  27. Raspberry Pi 4 [ править ]
  28. Raspberry Pi 3 [ править ]
  29. Raspberry Pi 2 [ править ]
  30. Orange Pi Prime [ править ]
  31. Замена загрузчика [ править ]
  32. Запись дополнительного загрузчика [ править ]
  33. Создание образа img из архива rootfs [ править ]
  34. Запись образа img на SD-карту [ править ]
  35. Расширить корневой раздел на всё свободное место [ править ]

Образ rootfs

Содержание

Что такое rootfs

rootfs, то есть root file system, корневая файловая система — это архив с минималистичной системой, грубо говоря, это как если бы вы открыли файловый менеджер в корне своего Linux и запаковали всё найденное в архив, только здесь предустановлено минимально необходимое количество пакетов.

Для чего нужен rootfs

  • chroot
  • запуск в контейнере (systemd-nspawn, lxc, docker)
  • установка системы вручную

Где скачать rootfs Росы

Раз в день автоматически выполняются сборки rootfs архитектур x86_64 и i586 на платформах rosa2016.1 и rosa2014.1.

Найти и скачать самые свежие сборки можно здесь.

Образы rootfs-min — это минималистичный образ (ввиду того, что некоторые пакеты в репозитории сейчас тянут лишние зависимости, в rootfs также есть лишние пакеты, например, grub2). Образы rootfs-std — это более расширенный набор пакетов, добавлены пакеты, необходимые для сборки других пакетов (rpm-build, git-core и др.).

Порядок скачивания последней сборки rootfs

  • Зайти в список сборок
  • Нажать на номер нужной сборки, обычно это последняя сборка
  • Скачать нужный файл
  • Распаковать его как архив

Как собрать rootfs самому

Нужно взять скрипты сборки и запустить mkimage-urpmi.sh.

Патчи и пулл-реквесты для улучшения скриптов сборки принимаются на Github.

Пример использования rootfs

Разберем на примере ежедневной сборки №25111. Контейнер назовем «rosa1».

После последней команды загрузится консоль контейнера, вводите логин root, пароль не запросит. Если убрать -b и сделать просто systemd-nspawn -D rosa1, то вы попадете в консоль без полноценного запуска виртуальной системы.

В команде wget выше

«ссылка» — это скопированная ссылка на скачивание архива, «имя файла для сохранения» — с каким именем сохранить скачанный файл, можно указать то имя, что в списке сборок. Если не указать, то файл будет назван хешем SHA1 вместо человекопонятного имени.

Пример использования на BTRFS для быстрого клонирования контейнеров

/var/lib/machines должно быть внутри раздела BTRFS.

В итоге у нас есть 3 одинаковых контейнера: /var/lib/machines/rosa1, /var/lib/machines/rosa2, /var/lib/machines/rosa3. Поскольку они одинаковые, место на диске занимается 1 раз, а не 3. После запуска каждого из контейнеров рекомендую менять hostname, чтобы было удобно их различать.

Запуск 32-битного контейнера на 64-битном хосте

Без доп. параметров всё запустится, но, например, uname и lscpu будут выдавать x86_64, в результате чего утилиты типа rpm будут думать, что они работают на 64-битной Ос, а не 32-битной.

Для решения проблемы в параметры запуска systemd-nspawn добавьте: —personality=x86, пример:

Источник

Ubuntu Wiki

RootfsFromScratch

This page describes building an armel Debian/Ubuntu root filesystem. It’s only from scratch in that you are not starting from installer images, and you don’t need target hardware to build it; the code is not rebuilt though, pre-build .deb packages are downloaded and installed instead.

Using rootstock

Simplest and recommended way, just run rootstock to create your rootfs (check ARM/RootStock for more info about rootstock).

Rootstock will automate the creation of a rootfs tarball and exposes some config options to tweak the contents/setup.

Читайте также:  Кто может продавать лицензии windows

If you’re running Ubuntu 9.10 (karmic) or later, you just need to install the rootstock package and it will pull the appropriate dependencies.

If you install rootstock manually or if you are running it from a bzr checkout, you will also need:

Please note: rootstock will not automatically give you a kernel package. You will have to include the kernel package you need for your hardware. For instance, for OMAP3 based hardware, you will need to include «—seed linux-image-omap» somewhere in your rootstock command.

To create an armel rootfs tarball of, for instance, xubuntu-desktop:

Here’s another example for ubuntu-desktop:

Some typical flags when developing headless (connecting over the network):

Note that you should edit /etc/network/interfaces and set up your network device on first login for this.

If you want a really light desktop (lxde), use:

The options —fqdn (or -f), —login (or -l) and —password (-p) are required for the initial setup. Calling the script with —help shows you all the additional options that can be used to change the setup of the created rootfs.

Change the password on the first login! The above examples use too simple passwords and will expose the password to other users of the machine where rootstock is run.

Building a root filesystem image instead of a tarball

In case you just need a root filesystem for use with qemu and you don’t want a rootfs tarball, e.g. for usage with qemu, pass —notarball to rootstock:

You can also create a root filesystem from a tarball as follows:

Create the blank image file using dd; this example creates a 1GB image; use seek=3072 for 3GB or seek=2048 for 2GB etc.:

Create linux filesystem on the newly created image:

(You might want to pass some extra flags to mkfs to tweak the reserved blocks, labels, or other filesystem options.)

Loop mount the new image:

Extract the rootfs tarball inside the mounted dir and umount:

Now you are set and ready to use the ubuntu-arm.img, see «Using a qemu image» below for the right command

Using a qemu image with full emulation

If you created your qemu image and want to start a fully emulated work environment (to compile packages or build applications), grab the kernel from:

and start qemu with the following command (indeed, you need to adjust the rootfs img name to whatever your image is called)

In the booted image you can then log in with the user and password you defined during image creation.

To be able to copy files from or to the host system it is helpful to install openssh-server on the host and use the scp command inside qemu.

Connect your emulated machine to a real network

When no option is specified QEMU uses a non privileged user mode network stack that gives the emulated machine access to the world. But you probably want to make your emulated machine accessible from the outside. It is possible by using the tap mode and bridging the tap interface with the network interface of the host machine.

The first thing to do is to active a bridge on your host machine. For that you have to modify the /etc/network/interfaces file as follow:

Then you need to install the bridge-utils package and restart your network interface:

Create a script call /etc/qemu-ifup that will be executed upon the start of QEMU:

As you probably don’t want to execute QEMU as root, you need to create a qemu user group and authorize the brctl and ifconfig commands for users of the qemu via sudo. You need to add the following lines to /etc/sudoers (edit the file using visudo):

Читайте также:  Управление загрузчиком windows 10

Tap networking requires that the tun module is loaded:

To load it automatically on boot, edit /etc/modules and add a line that says «tun» so that the file looks like this:

Finally you can start your emulated machine using the following command

You don’t need to give a MAC address if you are emulating only one machine, as QEMU will use a default one. However if you have more than one emulated machine (don’t forget QEMU can also emulate other architectures than ARM), you will have to specify a unique MAC address for each machine. I advise you to select an address from the range 00:16:3e:xx:xx:xx, which has been assigned to Xen.

Using qemu user mode emulation (with chroot)

If you don’t want to use qemu with full emulation, you can still use qemu, but with user mode emulation together with chroot, to create the emulated work environment (to compile packages or build applications).

First extract the rootfs tarball:

Copy qemu-arm-static to the rootfs, in order to be able to use qemu:

Mount the /proc filesystem:

Set up resolv.conf:

And finally get inside the emulated environment, with chroot:

Now you can easily install packages with apt-get and build the application you need/want.

Download a pre-built image

There is a pre-built image of karmic avaliable. It was built following steps above. It contains some stuff to compile and run software, such as gcc, g++, X libraries, FLTK, sqlite3, but there is no WM. You can add software using apt-get, if you want. You can use this image with Qemu or chroot. There is a little script inside the tarball to start Qemu without typing the entire command.

The user to login is ubuntu and password temppwd.

Bugs and Problems

If you run into any problems with the rootstock script, please contact «ogra» or «rsalveti» in #ubuntu-arm on irc.freenode.net or send a mail to ogra@ubuntu.com / ricardo.salveti@ubuntu.com.

If you run into an error please keep the log of your failed build.

A known issue is that language-pack handling is not implemented yet, please install the packages for your language manually post install.

ARM/RootfsFromScratch (последним исправлял пользователь 63 2011-01-11 20:51:24)

The material on this wiki is available under a free license, see Copyright / License for details.

Источник

Write/rootfs

Содержание

Введение [ править ]

Данная страница посвящена описанию способов установки архивов корневых файловых систем (rootfs) на физические носители (flash-накопители).

Установка rootfs на SD-карту с помощью alt-rootfs-installer [ править ]

  • micro-SD карта (или иной накопитель, если целевое устройство его поддерживает) достаточного объёма (не менее 8 ГБ; рекомендуется 16 ГБ и более; для сборок без DE должно хватить 4 ГБ);
  • операционная система Linux (установленная или Live);
  • программа для автоматической установки архива с rootfs — alt-rootfs-installer. Программа уже входит в комплект стартеркитов и дистрибутивов 9 платформы, но программу всё же лучше обновить перед применением. Также программа есть в репозиториях 8 платформы. Если вы используете другой дистрибутив Linux, вы можете скачать архив с исходниками последней версии, распаковать его архиватором и использовать, не устанавливая в систему.

Порядок действий для установки на SD-карту:

  • Скачиваем интересующий вас rootfs
  • Выясняем поддерживается ли целевое устройство:

В списке нужно найти название загрузчика (u-boot), предназначенного для вашего устройства, и указать его в качестве цели (—target= ). Список разбит по производителям SOC и архитектурам (armh, aarch64 и т.д.). Особняком стоят загрузчики для Raspberry Pi. rpi2 предназначен для записи armh rootfs для Raspberry Pi 2 и 3. rpi3 для записи aarch64 rootfs на Raspberry Pi 3.

  • Получаем права суперпользователя root:
  • Определяем имя целевого устройства в вашей системе. SD-карта обычно определяется в системе как /dev/mmcblk0, но может определяться и как /dev/sdX, где X — маленькая латинская буква от b до z (на /dev/sda установлена ваша система). Можно узнать как именно определилась карта например прочитав вывод # dmesg | tail -f сразу после подключения карты.
  • Устанавливаем командой:
Читайте также:  Непредвиденное завершение работы windows как исправить

Примеры создания загрузочных SD-карт [ править ]

Jetson Nano [ править ]

Команда для установки alt-p9-cinnamon-tegra-20190721-aarch64.tar.xz на SD-карту /dev/mmcblk0 с драйверами для Nvidia Jetson Nano будет выглядеть так:

После чего вам будет предложено скачать архив с драйверами:

Вы должны ввести yes и нажать Enter. После чего начнётся загрузка архива. Это может занять продолжительное время. После успешной загрузки архива на ваш компьютер, у вас будет запрошено подтверждение на запись SD-карты с информацией.

Вы также должны написать yes и нажать Enter. По завершении записи должно быть

ЭЛВИС Салют ЭЛ24ПМ2 (mcom02) [ править ]

Для установки на процессорный модуль ЭЛВИС Салют ЭЛ24ПМ2 потребуются специальные сборки с ядром mcom02. В названии rootfs должно присутствовать mcom02. Установка осуществляется командой:

Также можно установить вручную, выполнив следующие команды от root:

Или же можно воспользоваться графической утилитой вроде gparted. На microSD-карте необходимо создать таблицу разделов msdos, один раздел, отформатировать его в файловую систему ext4fs, файловой системе присвоить метку ROOT. После чего примонтировать созданный раздел и распаковать архив rootfs на него.

Raspberry Pi 4 [ править ]

Нужен alt-rootfs-installer версии 0.4.5-alt1 или новее.

Команда для установки alt-education-9.2-rpi4-20210524-aarch64.tar.xz на SD-карту /dev/mmcblk0 с загрузчиком для Raspberri Pi 3 и Raspberry Pi 4 будет выглядеть так:

Raspberry Pi 3 [ править ]

Команда для установки regular-mate-20190228-aarch64.tar.xz на SD-карту /dev/mmcblk0 с загрузчиком для Raspberri Pi 3 будет выглядеть так:

Команда для установки regular-mate-20190228-armh.tar.xz на SD-карту /dev/mmcblk0 с загрузчиком для Raspberri Pi 3 будет выглядеть так:

Raspberry Pi 2 [ править ]

Команда для установки regular-mate-20190228-armh.tar.xz на SD-карту /dev/mmcblk0 с загрузчиком для Raspberri Pi 2 будет выглядеть так:

Orange Pi Prime [ править ]

Команда для установки regular-mate-20190228-aarch64.tar.xz на SD-карту /dev/mmcblk0 с загрузчиком для Orange Pi Prime будет выглядеть так:

Замена загрузчика [ править ]

Одну и ту же micro-SD карту можно легко использовать на другом устройстве, лишь заменив загрузчик (это касается только загрузчиков для одного и того же типа SOC):

Запись дополнительного загрузчика [ править ]

Существует возможность иметь одновременно загрузчик для Raspberry Pi и ещё одного компьютера (только на базе SOC Allwinner), так как Raspberry Pi размещает свой загрузчик на первом разделе с файловой системой FAT.

Для этого необходимо при установке rootfs в качестве target указать rpi2 для armh или rpi3 для aarch64:

После чего установить второй загрузчик:

Создание образа img из архива rootfs [ править ]

В версии alt-rootfs-installer 0.3.0 появилась возможность создавать образ из архива rootfs. Для этого вместо опции —media= нужно указать —image-out=

Пример: создание образа regular-lxqt-20190213-aarch64.img из архива rootfs regular-lxqt-20190213-aarch64.tar.xz для Raspberry Pi 3:

Будет создан образ с минимальным запасом свободного места достаточного для загрузки, но не полноценной работы. Если планируется создать образ для работы в qemu, то можно явно указать желаемый размер в MiB:

Пример: создание образа regular-lxqt-20190213-aarch64.img из архива rootfs regular-lxqt-20190213-aarch64.tar.xz для Raspberry Pi 3 размером 8000 MiB:

Запись образа img на SD-карту [ править ]

Можно воспользоваться удобной утилитой с графическим интерфейсом rpi-imager[1] (сайт), которая существует под самые распространенные платформы. Ссылка на сообщение в рассылке

В любом Linux можно записать командой:

Также в версии alt-rootfs-installer 0.3.0 появилась возможность записывать образы img, img.gz, img.xz. Для этого вместо опции —rootfs= нужно указать —image-in=

Пример: запись образа regular-lxqt-20190213-aarch64.img.xz на /dev/mmcblkX для компьютера Orange Pi Prime:

Пример: запись образа slinux-rpi4-9.0-aarch64.img.xz на /dev/sdb для компьютера Raspberry Pi 4:

И наконец, если у вас Windows, то записать, предварительно разархивировав, можно программой HDD Raw Copy Tool.

Расширить корневой раздел на всё свободное место [ править ]

Начиная с версии 0.3.2 в alt-rootfs-installer появилась опция —resize. Она расширяет последний раздел на накопителе на всё оставшееся неразмеченное пространство. Поддерживаются разметки диска mbr и gpt.

Источник

Оцените статью