Как смонтировать aufs файловую систему на начальной загрузке в archlinux?

Использовать mount смотреть на Ваши дисковые точки монтирования. Ищите самое долгое соответствие для /var/www и это - Ваш диск. В моем случае это /dev/sda2.

[mpenning@Bucksnort ~]$ mount
/dev/sda2 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
[mpenning@Bucksnort ~]$

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

[mpenning@Bucksnort ~]$ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             30759872  22835672   6361680  79% /
tmpfs                  1947664        12   1947652   1% /lib/init/rw
udev                   1943240       104   1943136   1% /dev
tmpfs                  1947664         0   1947664   0% /dev/shm
/dev/sda1              1441280     67136   1300928   5% /boot
[mpenning@Bucksnort ~]$
3
06.07.2013, 08:36
6 ответов

Systemd имеет собственную поддержку монтирования (man systemd.mount). На самом деле чтения systemd /etc/fstab, использование это для генерации монтирует единицы и монтирует файловые системы само.

Вместо доверия fstab, также возможно создать, монтируют единицы вручную. Это - то, как система монтируется как /dev, /sys, /proc, и т.д. обрабатываются (/usr/lib/systemd/system/*.mount). Этот метод позволяет Вам использовать systemd зависимости, чтобы гарантировать, что вещи смонтированы в правильном порядке.

systemd монтируют, что файлы единицы нужно назвать после точки монтирования они управляют (man systemd.unit). Как пример, я создал файл единицы для монтирования моего резервного диска USB к /mnt/backup. После соглашения о присвоении имен я создал /etc/systemd/system/mnt-backup.mount, со следующим содержанием:

[Unit]
Description = USB backup disk

[Mount]
What = LABEL=david-usb-backup
Where = /mnt/backup
Type = ext4

[Install]
WantedBy = multi-user.target

Я затем работаю systemctl daemon-reload чтобы systemd загрузил единицу. Я могу работать systemctl start mnt-backup.mount смонтировать диск, и/или systemctl enable mnt-backup.mount запустить его при начальной загрузке.

Поскольку зависимости добавляют Requires = some-other-mnt-point.mount под [Unit] раздел. Дополнительно, можно использовать BindTo вместо Requires; это заставит это быть размонтированным, если одна из зависимостей исчезнет. Однако Requires не влияет на порядок, в котором смонтированы диски. Таким образом, чтобы удостовериться, что диски смонтированы прежде aufs, использовать After.

Править: Подробно остановиться на использовании Requires и After, раздел единицы мог бы быть похожим:

[Unit]
Description = USB backup disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount
8
27.01.2020, 21:07
  • 1
    Моя aufs файловая система использует три диска, смонтированные в fstab. Я должен удостовериться, что эти диски смонтированы, прежде чем aufs смонтирован. Можно ли дать мне, пример с 'Требует' использования fstab записи? Как/где я указываю aufs опции как ответвления?? –  Nithin 06.07.2013, 13:21
  • 2
    я добавил пример использования Requires. Можно получить имена единицы путем выполнения systemctl -t mount. Можно добавить сингл Options = ... под [Mount] с тем же синтаксисом как в fstab. –  David Baggerman 06.07.2013, 13:38
  • 3
    Используя просто Requires = генерирует поведение, подобное поведению fstabэто - aufs, был смонтирован перед дисками. Добавленный After = и это, кажется, работает. –  Nithin 06.07.2013, 21:02
  • 4
    отредактировал Ваш ответ для включения оператора –  Nithin 06.07.2013, 21:11

Мысль я отправил бы пошаговую инструкцию для других как я. Благодаря David Baggerman для помощи мне достигнуть здесь.

Я создал /etc/systemd/system/mnt-aufs.mount, со следующим содержанием:

[Unit]
Description = AUFS disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount

[Mount]
What = none
Where = /mnt/aufs
Type = aufs
Options = br:/mnt/data01/=rw:/mnt/data02/=rw:/mnt/data03/=rw,sum,create=mfs

[Install]
WantedBy = multi-user.target

Я затем работал systemctl daemon-reload чтобы systemd загрузил единицу. Выполненный systemctl start mnt-aufs.mount смонтировать диск, и/или systemctl enable mnt-aufs.mount запустить его при начальной загрузке.

Это эквивалентно для копирования вставки следующего в /etc/rc.local сценарий init и был бы намного легче. Интересно, почему systemd не имеет эквивалентного файла.

mount -t aufs -o br:/mnt/disk01=rw:/mnt/disk02=rw: /mnt/disk03=rw,sum,create=mfs none /mnt/aufs
10
27.01.2020, 21:07
  • 1
    это лучше затем rc.local, потому что systemd может управлять точкой монтирования, размонтироваться, это на завершении работы, и т.д. rc.local является суперпримитивный способ сделать вещи, и в то время как это работает, это - не всегда самая легкая вещь справиться. –  Woodrow Douglass 07.03.2017, 15:07
  • 2
    , Если у Вас есть/etc/rc.local как исполняемый файл, он будет втянут к процессу начальной загрузки systemd-rc-local-generator / rc-local.service. Отметьте путь, где он ищет rc.local установлен распределением, можно проверить его с systemctl cat rc-local.service. –  sourcejedi 23.09.2017, 21:25
  • 3
    ..., который не кажется очень хорошо известным. таким образом, я добавил его как ответ здесь –  sourcejedi 23.09.2017, 21:44

Вы лучше используете/etc/rc.local

Попробуйте этот пример:

# cat > /etc/rc.local << EOF
mount -t squashfs -o loop /usr/src/system_packages.squashfs /var/mount_point/
mount -t aufs -o remount,append:/var/mount_point/ none / 
EOF
0
27.01.2020, 21:07
  • 1
    Насколько я знаю, systemd не использует rc.local... –  Nithin 06.07.2013, 19:34
  • 2
    Лучше для исправления этой ошибки, чем разрабатывают велосипед. ошибка –  stackexchanger 06.07.2013, 19:48
  • 3
    ?? Если существует эквивалент rc.local, сообщите мне. –  Nithin 06.07.2013, 19:50
  • 4
    разъясните то, что Вы подразумеваете под ошибкой.. –  Nithin 06.07.2013, 20:10
  • 5
    , которые я имею в виду, если никакой rc.local, лучше создайте его и не разрабатывайте велосипед. –  stackexchanger 07.07.2013, 02:48

Новые версии systemd поддерживают параметр x-systemd.requires в fstab, поэтому, если вы не хотите использовать модули systemd.mount и хотите придерживаться для fstab попробуйте следующее:

aufs /mnt/storage aufs ro,nobootwait,dirs=/mnt/storage2=ro:/mnt/storage1=ro:/mnt/storage3=ro:/mnt/storage4=ro:/mnt/storage0=ro:/mnt/storage5=ro:/mnt/storage6=ro:/mnt/storage7=ro:/mnt/storage8,xino=/dev/shm/aufs.xino,x-systemd.requires=mnt-storage0,x-systemd.requires=mnt-storage1,x-systemd.requires=mnt-storage2,x-systemd.requires=mnt-storage3,x-systemd.requires=mnt-storage4,x-systemd.requires=mnt-storage5,x-systemd.requires=mnt-storage6,x-systemd.requires=mnt-storage7,x-systemd.requires=mnt-storage8  0 0
0
27.01.2020, 21:07

Linux Live Kit -Убедитесь, что модули ядра aufsи squashfsподдерживаются вашим ядром. Оба Debian Jessie включены автоматически.

Возможно, вам потребуется установить пакет aufs-dkmsв новых версиях Debian.

-1
27.01.2020, 21:07

Если вы хотите продолжать использовать fstab, просто попробуйте добавить _netdev в опции.

none   /mnt/aufs   aufs  sum,create=mfs,dirs=.....,_netdev   0  0

Это задержит монтирование до тех пор, пока сеть не заработает.

1
27.01.2020, 21:07

Теги

Похожие вопросы