Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
ru:docs:guide-user:additional-software:extroot_configuration [2019/09/07 20:06] – [Прежде чем начать...] alexcheru:docs:guide-user:additional-software:extroot_configuration [2019/09/08 07:43] – [Через командную строку] alexche
Line 21: Line 21:
 ===== Инструкции ===== ===== Инструкции =====
  
-==== 1.1. Для устройств с менее чем  4 МБ флеш памяти ====+==== 1.1. Для устройств менее чем с 4 МБ флеш памяти ====
 В образах прошивки OpenWrt по умолчанию нет инструментов для создание extroot, так как система сборки в настоящее время создает только barebone-образы. \\ В образах прошивки OpenWrt по умолчанию нет инструментов для создание extroot, так как система сборки в настоящее время создает только barebone-образы. \\
 Единственный способ использовать эти устройства - перестроить образ прошивки с нужными пакетами с помощью Image Builder. \\ Единственный способ использовать эти устройства - перестроить образ прошивки с нужными пакетами с помощью Image Builder. \\
Line 65: Line 65:
 К сожалению, это неудобно, но, как сказано выше, мы не можем разместить инструменты форматирования на устройствах с 4 МБ флэш-памяти. К сожалению, это неудобно, но, как сказано выше, мы не можем разместить инструменты форматирования на устройствах с 4 МБ флэш-памяти.
  
-==== 1.2. Устройства более чем 8 МБ флеш памяти ====+==== 1.2. Устройства более чем с 8 МБ флеш памяти ====
 На этих устройствах должно быть достаточно места для установки необходимых нам пакетов. На этих устройствах должно быть достаточно места для установки необходимых нам пакетов.
 Удалите все пакеты, которые вы установили, чтобы добавить функциональность, так как они теперь только используют место во встроенной флеш памяти. Удалите все пакеты, которые вы установили, чтобы добавить функциональность, так как они теперь только используют место во встроенной флеш памяти.
Line 149: Line 149:
 </code> </code>
  
 +===== Проверка =====
  
 +==== Через Web интерфейс ====
 +  - **[[http://openwrt.lan/|LuCI]] -> System -> Mount Points** должен быть показан раздел на внешнем USB устройстве подмонтированный как ''overlay''.
 +  - **[[http://openwrt.lan/|LuCI]] -> System -> Software** должно быть показано большее свободное пространство на overlay разделе.
  
  
-===== Подготовка ===== +==== Через командную строку ==== 
-**Смонтируйте** **файловую систему**, куда будут скопированы настройки и корень. +Раздел на внешнем USB устройстве должен быть подмонтирован как ''overlay''  
-    * Для USB-устройств, смотрите [[docs:guide-user:storage:usb-installing]] и [[docs:guide-user:storage:usb-drives]].  +Свободное пространство в корневом разделе ''/'' должно быть равно пространству на ''/overlay''.
-     * Также, обратите внимание на [[doc:howto:sata.essentials]],  IDE(PATA) [[doc:howto:ide.essentials]] и [[doc:howto:cf.essentials]]. +
-    * Смотрите [[doc:howto:client.overview#Mounting Filesystems]] для монтирования удалённой файловой системы через сеть. +
-    * Смотрите [[ru:doc:howto:storage]] для общей информации о конфигурации устройств хранения.+
  
-Убедитесь что ваше устройство смонтировано в режиме чтения/записи и на него можно записывать данные. Для проверки смонтируйте в ручном режиме первый раздел на USB-диске ''/dev/sda'':+<code bash> 
 +# grep -e /overlay /etc/mtab 
 +/dev/sda1 /overlay ext4 rw,relatime,data=ordered 
 +overlayfs:/overlay / overlay rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work
  
-    mount /dev/sda1 /mnt/sda1+# df /overlay / 
 +Filesystem           1K-blocks      Used Available Use% Mounted on 
 +/dev/sda1              7759872    477328   7221104   6% /overlay 
 +overlayfs:/overlay     7759872    477328   7221104   6% / 
 +</code>
  
-Убедитесь, что всё успешно подключено, запустив ''mount'' или ''df''. Также, вы можете записать файл и прочитать его непосредственно в/из ''/mnt/sda1''. 
  
-===== Chaos Calmer =====+===== Сохранение списков программных пакетов при загрузке =====  
 +Сохранение статуса установленных пакетов opkg в ''/usr/lib/opkg/lists'' хранящемся в extroot, а не в RAM, экономит некоторую оперативную память и сохраняет списки пакетов доступными после перезагрузки.
  
-==== Подготовка ==== 
-Установите следующие пакеты: 
-  * //block-mount// (подробную информацию смотрите в [[docs:techref:block_mount]] и в [[ru:doc:uci:fstab]]). 
-  * //kmod-fs-ext4// или //kmod-fs-//[файловая система, которую вы используете на USB-диске]  
-  * //kmod-usb-storage-extras// <code>opkg update 
-opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras</code>   
-  * Если opkg выдаёт ошибку при установке kmod-usb-storage-extras, следует сперва установить <code>kmod-usb-core</code>  
  
-==== Установка на внешний overlay (рекомендованный вариант) ==== +==== Через Web интерфейс ====
-  - Создайте на USB-диске разделы и отформатируйте их, используя любой Live CD с Linux или средствами uci //(рекомендуется использовать первый раздел для root overlay, второй для swap (если он вам необходим), а далее разместить прочие разделы, которые вам нужны)// +
-  - Скопируйте /overlay на USB-устройство <code> +
-mount /dev/sda1 /mnt +
-tar -C /overlay -cvf - . | tar -C /mnt -xf - +
-umount /mnt +
-</code> +
-  - Создайте шаблон fstab<code> +
-block detect > /etc/config/fstab +
-vi /etc/config/fstab +
-</code> +
-  - Внесите исправления в ''/etc/config/fstab'': +
-    - Все строки вида ''enabled '0' '' приведите к ''enabled '1' '' +
-    - Отредактируйте ''option target'' корневого раздела overlay, чтобы он выглядел как **''/overlay''** (**__НЕ__** ''overlay'', поскольку это приведёт к ошибочному двойному монтированию) +
-    - Отредактируйте ''option target'' прочих разделов, в соответствии с тем, куда вы хотите их примонтировать (и не забудьте создать соответствующие директории в файловой системе)\\ После всех манипуляций ваш fstab будет выглядеть примерно так:<code> +
-config 'global' +
-        option  anon_swap       '0' +
-        option  anon_mount      '0' +
-        option  auto_swap       '1' +
-        option  auto_mount      '1' +
-        option  delay_root      '5' +
-        option  check_fs        '0'+
  
-config 'mount' +1. **[[http://openwrt.lan/|LuCI]] -> System -> Software -> Configuration **
-        option  target  '/overlay' +
-        option  uuid    'c91232a0-c50a-4eae-adb9-14b4d3ce3de1' +
-        option  fstype  'ext4' +
-        option  enabled '1'+
  
-config 'swap' +смените
-        option  uuid    '08b4f0a3-f7ab-4ee1-bde9-55fc2481f355' +
-        option  enabled '1'+
  
-config 'mount' +<code bash> 
-        option  target  '/data' +lists_dir ext /var/opkg-lists
-        option  uuid    'c1068d91-863b-42e2-bcb2-b35a241b0fe2' +
-        option  enabled '1'+
 </code> </code>
-  - Перезагрузите роутер 
-  - Убедитесь, что разделы корректно смонтированы: 
-    * с помощью LuCI 
-      * в //System - Software// должно быть видно свободное пространство на разделе 
-      * в //System - Mount Points// должен быть виден USB-раздел, смонтированный как ''overlay'' 
-    * с помощью консоли 
-      * команда ''mount'' должна показать USB-раздел, смонтированный как ''/overlay''\\ <code> 
-root@OpenWrt:mount 
  
-/dev/root           on /rom               type squashfs (ro,relatime) +на
-proc                on /proc              type proc     (rw,noatime) +
-sysfs               on /sys               type sysfs    (rw,noatime) +
-tmpfs               on /tmp               type tmpfs    (rw,nosuid,nodev,noatime) +
-/dev/ubi0_1         on /overlay           type ubifs    (rw,noatime) +
-overlayfs:/overlay  on /                  type overlay  (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work) +
-tmpfs               on /dev               type tmpfs    (rw,relatime,size=512k,mode=755) +
-devpts              on /dev/pts           type devpts   (rw,relatime,mode=600) +
-/dev/sda1           on /overlay           type ext4     (rw,relatime,data=ordered) +
-/dev/sda3           on /data              type ext4     (rw,relatime,data=ordered) +
-debugfs             on /sys/kernel/debug  type debugfs  (rw,noatime)+
  
 +<code bash>
 +lists_dir ext /usr/lib/opkg/lists
 </code> </code>
-      * ''df'' должен показать свободное пространство на разделах ''/overlay'' и ''/data''\\ <code> 
-root@OpenWrt:df 
  
-Filesystem           1K-blocks      Used Available Use% Mounted on +это должно выглядеть примерно так:
-rootfs                   27180      7796     17964  30% / +
-/dev/root                 2304      2304         0 100% /rom +
-tmpfs                   127668      1468    126200   1% /tmp +
-/dev/ubi0_1            1998672      8056   1869376   0% /overlay +
-overlayfs:/overlay       27180      7796     17964  30% / +
-tmpfs                      512               512   0% /dev +
-/dev/sda1              1998672      8056   1869376   0% /overlay +
-/dev/sda3            242846048    163864 230323224   0% /data +
-</code>+
  
-==== Установка на внешний корень ==== +<code bash
-  - Создайте на USB-диске разделы и отформатируйте их, используя любой Live CD с Linux или средствами uci //(рекомендуется использовать первый раздел для root overlay, второй для swap (если он вам необходим), а далее разместить прочие разделы, которые вам нужны)// +dest root 
-  - Скопируйте корневую файловую систему на USB-устройство <code> +dest ram /tmp 
-mkdir -p /tmp/introot +lists_dir ext /usr/lib/opkg/lists 
-mkdir -p /tmp/extroot +option overlay_root /overlay 
-mount --bind / /tmp/introot +option check_signature
-mount /dev/sda1 /tmp/extroot +
-tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf - +
-umount /tmp/introot +
-umount /tmp/extroot+
 </code> </code>
-  - Создайте шаблон fstab<code> 
-block detect > /etc/config/fstab 
-vi /etc/config/fstab 
-</code> 
-  - Внесите исправления в ''/etc/config/fstab'': 
-    - Все строки вида ''enabled '0' '' приведите к ''enabled '1' '' 
-    - Отредактируйте ''option target'' корневого раздела, чтобы он выглядел как **''/''** 
-    - Отредактируйте ''option target'' прочих разделов, в соответствии с тем, куда вы хотите их примонтировать (и не забудьте создать соответствующие директории в файловой системе)\\ После всех манипуляций ваш fstab будет выглядеть примерно так:<code> 
-config 'global' 
-        option  anon_swap       '0' 
-        option  anon_mount      '0' 
-        option  auto_swap       '1' 
-        option  auto_mount      '1' 
-        option  delay_root      '5' 
-        option  check_fs        '0' 
  
-config mount +2. **[[http://openwrt.lan/|LuCI]] -> System -> Software -> Actions -> Update lists ** производит первоначальное обновление списка пакетов на extroot
- option device '/dev/sda1' +
- option target '/+
- option enabled '1'+
  
-config swap 
- option device '/dev/sda2' 
- option enabled '1' 
  
-config mount +-----------Перевод и обновление статьи продолжается! ------------ 
- option device '/dev/sda3' +далее идет старая версия!
- option target '/data' +
- option enabled '1' +
-</code> +
-  - Перезагрузите роутер +
-  - Убедитесь, что разделы корректно смонтированы.+
  
-===== Barrier Breaker ===== 
-Здесь приведены лишь отличия, характерные для Barrier Breaker. Все остальные действия аналогичны таковым для Chaos Calmer. 
  
-==== Установка на внешний overlay (рекомендованный вариант) ==== 
-Примерное содержимое [[docs:guide-user:storage:fstab|fstab]]: 
-|''config mount 
-        option target        /overlay 
-        option device        /dev/sda1 
-        option fstype        ext4 
-        option options       rw,sync 
-        option enabled       1 
-        option enabled_fsck  0''| 
  
-Если монтирование не удалось, overlay смонтируется в ''/tmp/overlay-disabled'' вместо того, чтобы быть корневой файловой системой. 
  
-У некоторых пользователей при использовании Barier Breaker 14.07 (RC-версиях) на устройствах с архитектурой ar71xx раздел продолжает монтироваться как /mnt/sdax вместо /overlay. Проблема решается запуском block detect, который создаст правильный fstab с корректными идентификаторами разделов. 
-  
-|''root@OpenWrt:/# cat /etc/config/fstab 
-config global 
-        option anon_swap '0' 
-        option anon_mount '0' 
-        option auto_swap '1' 
-        option auto_mount '1' 
-        option delay_root '5' 
-        option check_fs '0' 
  
-config mount 
-        option target '/overlay' 
-        option uuid '1902a323-79a6-4b1a-a511-a58655974ee9' 
-        option enabled '1' 
-        option fstype 'ext4' 
  
-config mount 
-        option target '/mnt/sda2' 
-        option uuid 'dc64a6dd-de63-4363-b405-403cdced1649' 
-        option enabled '1' 
-        option fstype 'ext4' ''| 
  
-Проверка работоспособности extroot с помощью утилиты ''df'': 
  
-|''root@OpenWrt:~# df 
-Filesystem           1K-blocks      Used Available Use% Mounted on 
-rootfs                 2758072    118004   2501828   5% / 
-/dev/root                 2048      2048         0 100% /rom 
-tmpfs                    63340        76     63264   0% /tmp 
-/dev/sda1              2758072    118004   2501828   5% /overlay 
-overlayfs:/overlay     2758072    118004   2501828   5% / 
-tmpfs                      512               512   0% /dev''| 
- 
-Учитывайте, что ''rootfs'' и ''overlayfs:/overlay'' занимают одно и то же место, и оба монтируются в корень (''/''). Кроме того, ''/dev/sda1'' смонтирован в ''/overlay'' и является оверлейной файловой системой. В том случае, если вы настроили не внешний overlay, а внешний корень, в выводе ''df'' не будет строки ''overlayfs:/overlay''. 
- 
-==== Установка на внешний корень ==== 
-Примерное содержимое [[docs:guide-user:storage:fstab|fstab]]: 
-| ''config mount 
-        option target        / 
-        option device        /dev/sda1 
-        option fstype        ext4 
-        option options       rw,sync 
-        option enabled       1 
-        option enabled_fsck  0'' | 
  
-До ревизии [[https://dev.openwrt.org/changeset/26311/trunk|r26311]] неудачно смонтированный внешний корень монтировался в ''/tmp/rom-disabled'', а после ревизии [[https://dev.openwrt.org/changeset/26311/trunk|r26311]] - в ''/tmp/whole_root-disabled''. 
  
-===== Attitude Adjustment ===== 
-==== Старый вариант установки на внешний overlay ==== 
-Before [[https://dev.openwrt.org/changeset/25787/trunk|r25787]] configure by setting the option **is_rootfs** in your ''/etc/config/fstab'' Besides that, there is nothing to be configured regarding extroot that is different from any other mount. 
  
-For trunk versions up to, but not including r25787 the following is an example for an extroot mount entry in the file /etc/config/fstab. Note the fstype, options and enable_fchk options are optional, see [[docs:guide-user:storage:fstab|fstab]]. 
  
-|''config mount 
-        option target        /mnt  # This is ignored once is_rootfs is set to 1 
-        option device        /dev/sda1 
-        option fstype        ext3 
-        option options       rw,sync 
-        option enabled       1 
-        option enabled_fsck  0 
-        option is_rootfs     1''| 
  
- A ''target'' option is not mandatory as it will be the overlay file system. However, using the directory ''/mnt'' as target will make testing possible: first set is_rootfs to 0, reboot and check if all mounts well and than set it to 1 and reboot again. Make sure the target it is **not** manually set to ''/overlay.''  ''/overlay'' is automatically used on a successful ''is_rootfs''-mount, but if for some reason this file system could not be made the rootfs will be mounted on the target listed here.  Using ''/overlay'' will result in an double ''/overlay'' mount and screw things up. In later releases, the target is used to determine if a mount entry is an extroot device and ''is_rootfs'' is not used anymore to circumvent this.  
  
-| {{:meta:icons:tango:48px-outdated.svg.png?nolink}}| ''option is_rootfs'' is deprecated **after** [[https://dev.openwrt.org/changeset/25787/trunk|r25787]]. Use the new overlay variant where the target is used to determine if a mount entry is an extroot device. **Before** Trunk r25787 the option ''is_rootfs'' is required for block-extroot mounts! | 
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
Line 484: Line 331:
 To upgrade kernel + kernel modules you need to first upgrade the kernel-modules (with opkg upgrade ... --force... ) and then immediately WITHOUT rebooting, reflash Kernel + SquashFS with ''sysupgrade''. Then reboot. To upgrade kernel + kernel modules you need to first upgrade the kernel-modules (with opkg upgrade ... --force... ) and then immediately WITHOUT rebooting, reflash Kernel + SquashFS with ''sysupgrade''. Then reboot.
  
-===== Information on Legacy versions ===== 
-Backfire see: [[docs:guide-user:additional-software:extroot_configuration.old]] 
  
  • Last modified: 2023/01/17 04:16
  • by vgaetera