- Образ rootfs
- Содержание
- Что такое rootfs
- Для чего нужен rootfs
- Где скачать rootfs Росы
- Порядок скачивания последней сборки rootfs
- Как собрать rootfs самому
- Пример использования rootfs
- Пример использования на BTRFS для быстрого клонирования контейнеров
- Запуск 32-битного контейнера на 64-битном хосте
- Что такое rootfs# и что с ним можно делать?
- 1 ответов
- Write/rootfs
- Содержание
- Введение [ править ]
- Установка rootfs на SD-карту с помощью alt-rootfs-installer [ править ]
- Примеры создания загрузочных SD-карт [ править ]
- Jetson Nano [ править ]
- ЭЛВИС Салют ЭЛ24ПМ2 (mcom02) [ править ]
- Raspberry Pi 3 [ править ]
- Raspberry Pi 2 [ править ]
- Orange Pi Prime [ править ]
- Замена загрузчика [ править ]
- Запись дополнительного загрузчика [ править ]
- Создание образа img из архива rootfs [ править ]
- Запись образа img на SD-карту [ править ]
- Расширить корневой раздел на всё свободное место [ править ]
- What is rootfs# and what can you do with it?
- 1 Answer 1
- Location of /root/ on Windows 10 Ubuntu
- 3 Answers 3
- New location of the filesystem folders
- Obtaining the path using lxRunOffline
- Obtaining the path Programmatically
Образ 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, пример:
Что такое rootfs# и что с ним можно делать?
Я был сброшен на [rootfs /]# запрашивать много раз, когда не удалось загрузить мой дистрибутив. Обычно я обнаружил, что я не мог решить проблему с ограниченными команд, доступных, так что я хотел бы использовать любой запасной Live CD я лежал вокруг.
но что такое rootfs подскажешь? Почему он имеет ограниченные команды? И могу ли я использовать его для загрузки системы после устранения проблемы?
1 ответов
Rootfs — специальный экземпляр ramfs (или tmpfs , если это включен), всегда присутствует в 2.6 systems . Вы не можете размонтировать rootfs.
во время инициализации ядра регистрируется абсолютно минимальная файловая система, называемая rootfs . Код, реализующий эту файловую систему, находится в fs/ramfs/inode.c , который также содержит код ramfs файловой системы. rootfs в основном идентична ramfs , за исключением спецификация MS_NOUSER флаг. Это интерпретируется подпрограммой graft_tree in fs/namespace.c , и я думаю, что это мешает процессам userland делать свои собственные монтирования rootfs .
процедура init_mount_tree (находится в fs / namespace.c) вызывается при запуске системы, чтобы смонтировать экземпляр rootfs и сделать его корневым пространством имен текущего процесса (помните, что в Linux разные процессы могут иметь разные пространства имен файловых систем).
It содержит все приложения, Настройки, устройства, данные и многое другое. Без корневой файловой системы, ваша система Linux не может работать.
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 сразу после подключения карты.
- Устанавливаем командой:
Примеры создания загрузочных 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 3 [ править ]
Команда для установки regular-mate-20190228-aarch64.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.
What is rootfs# and what can you do with it?
I have been dropped to a [rootfs /]# prompt many times when booting my distro failed. Usually I found I couldn’t fix the problem with the limited commands available, so I would use any spare Live CD I had laying around.
But what is the rootfs prompt? Why does it have limited commands available? And can I use it to boot my system after the problem has been fixed?
1 Answer 1
Rootfs is a special instance of ramfs (or tmpfs , if that’s enabled), which is always present in 2.6 systems . You can’t unmount rootfs.
At kernel initialization time, there is an absolutely minimal filesystem registered, called rootfs . The code that implements this filesystem can be found in fs/ramfs/inode.c , which also happens to contain the code for the ramfs filesystem. rootfs is basically identical to ramfs , except for the specification of the MS_NOUSER flag. This is interpreted by the routine graft_tree in fs/namespace.c , and I think it prevents userland processes doing their own mounts of rootfs .
The routine init_mount_tree (found in fs/namespace.c) is called at system startup time to mount an instance of rootfs, and make it the root namespace of the current process (remember that, under Linux, different processes can have different filesystem namespaces).
It contains all applications, settings, devices, data and more. Without the root file system, your Linux system can not run.
Location of /root/ on Windows 10 Ubuntu
I installed the bash on Ubuntu on Windows 10 — the insider preview edition. Windows terminals are however are sort of cumbersome to use if one is used to Ubuntu’s terminal. I was wondering if there is a way to access the Ubuntu filesystem from Windows so that I can do the development in some other editor and run the code from Ubuntu-bash ?
3 Answers 3
Any terminal program that can open a Windows command prompt should be able to run bash (bash.exe launches the Windows Linux Subsytem), so you don’t have to be stuck with command.exe.
Conemu (mentioned by @anotherfred) or Cmder are some of the fan favorites. You can also use Powershell if you like that.
You can access your Windows files from WSL at /mnt/c (and /mnt/d if you have a d: drive, etc). That works relatively well if you want to do command line stuff and still access the files using your favorite Windows editor.
You can see your WSL file system from Windows at:
though I wouldn’t mess with it from within Windows.
/root would be under
/home would be under
These two are mounted separately so that they are not deleted when you remove WSL.
Windows 10 versions released since the end of 2017 (including the Fall Creators Update and Windows Insiders Builds 17063+) supports multiple linux distributions running on the same machine. In consequence, WSL must store the root filesystem for each distribution in a different location.
The root filesystem is not located anymore at
New location of the filesystem folders
Each linux distribution installed from the Windows Store stores the root filesystem in a different folder at
The vary from one distribution to the other. For instance, the following are the in my test computer:
- Ubuntu 16.04 : CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc
- Ubuntu 18.04 : CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
- Debian : TheDebianProject.DebianGNULinux_76v4gfsz19hv4
- Kali linux: KaliLinux.54290C8133FEE_ey8k8hqnwqnmg
If you wanna access the root or the home filesystems, you must use the appropriated folders. For instance, to go to the folders for the KaliLinux, you must go to:
Obtaining the path using lxRunOffline
LxRunOffline is a tool to manage WSL linux distributions. It can be used to install or move a WSL distribution to any folder of your computer.
You can use lxRunOffline get-dir to obtain the path of the installation folder. The root is in the rootfs sub-folder.
Obtaining the path Programmatically
If you are interested, you can obtain the path using a program. The information about the installed distributions and their configuration is stored in the Windows Registry.
You can check the information using the regedit and the following path:
There is all the configuration of the diverse distributions you have installed. For instance, You can use Powershell to obtain the information of the base path for the default distribution.
To check the filesystems for all your installed distributions, you can use Powershell too.