LINUX.ORG.RU

mount показывает не все указанные опции монтирования

 , ,


0

2
# grep Options /etc/systemd/system/*.mount
/etc/systemd/system/depo.mount:Options=noatime,max_inline=256,ssd_spread,discard,compress=lzo,space_cache,autodefrag,subvol=depo
/etc/systemd/system/home-fragment.mount:Options=noatime,max_inline=256,ssd_spread,discard,compress=lzo,space_cache,autodefrag,subvol=fragment/Dec2014
/etc/systemd/system/-.mount:Options=noatime,max_inline=256,ssd_spread,discard,compress=lzo,space_cache,autodefrag,subvol=Jan2018
/etc/systemd/system/repo.mount:Options=noatime,max_inline=256,ssd_spread,discard,compress=lzo,space_cache,autodefrag,subvol=repo
/etc/systemd/system/vol.mount:Options=noatime,max_inline=256,ssd_spread,discard,compress=lzo,space_cache,autodefrag,autodefrag
mount | grep btrfs
/dev/sda2 on / type btrfs (rw,relatime,compress=lzo,ssd,space_cache)
/dev/sda2 on /vol type btrfs (rw,noatime,compress=lzo,ssd,space_cache)
/dev/sda2 on /depo type btrfs (rw,noatime,compress=lzo,ssd,space_cache)
/dev/sda2 on /home/fragment type btrfs (rw,noatime,compress=lzo,ssd,space_cache)
/dev/sda2 on /repo type btrfs (rw,noatime,compress=lzo,ssd,space_cache)

wtf? где мои max_inline, autodefrag, почему вместо ssd_spread - просто ssd? и почему корень монтируется с relatime вместо noatime? что за своеволие?

intelfx, это опять systemd что-то мутит?



Последнее исправление: Alyssa (всего исправлений: 1)

intelfx, вот ещё что: внезапно обнаружил в dmesg такие строчки:

[    2.917927] systemd[1]: [/etc/systemd/system/vol.mount:9] Unknown lvalue 'FsckPassNo' in section 'Mount'
[    2.918594] systemd[1]: [/etc/systemd/system/repo.mount:9] Unknown lvalue 'FsckPassNo' in section 'Mount'
[    2.918823] systemd[1]: [/etc/systemd/system/home-fragment.mount:9] Unknown lvalue 'FsckPassNo' in section 'Mount'
[    2.918892] systemd[1]: [/etc/systemd/system/depo.mount:9] Unknown lvalue 'FsckPassNo' in section 'Mount'
[    2.919426] systemd[1]: [/etc/systemd/system/boot.mount:9] Unknown lvalue 'FsckPassNo' in section 'Mount'

что странно, т.к. раньше вроде всё работало

что теперь нужно указывать вместо?

Alyssa
() автор топика

cat /proc/mounts

вообще это by-design, тк некоторые опции передаются сисвызову mount() как битовая маска, а некоторые как строка

anonymous
()
Ответ на: комментарий от anonymous
# grep btrfs /proc/mounts
/dev/sda2 / btrfs rw,relatime,compress=lzo,ssd,space_cache 0 0
/dev/sda2 /vol btrfs rw,noatime,compress=lzo,ssd,space_cache 0 0
/dev/sda2 /depo btrfs rw,noatime,compress=lzo,ssd,space_cache 0 0
/dev/sda2 /home/fragment btrfs rw,noatime,compress=lzo,ssd,space_cache 0 0
/dev/sda2 /repo btrfs rw,noatime,compress=lzo,ssd,space_cache 0 0
Alyssa
() автор топика
Ответ на: комментарий от Alyssa

а если вручную монтировать, а потом cat /proc/mounts

anonymous
()

пля, я просто эпический упорок, у меня в корневом юните указан несуществующий subvol

facepalm

Alyssa
() автор топика

напал на след

если монтирование корня вернуть обратно в fstab, то все разделы мнотируются как надо, с правильными опциями, а означенная байда начинается после удаления fstab

intelfx, это таки systemd шалит, помоги разобраться что к чему

Alyssa
() автор топика
Ответ на: напал на след от Alyssa

вот так выглядит сейчас корневой юнит:

# systemctl cat -- -.mount
# /etc/systemd/system/-.mount
[Unit]
Description = Root zone
Before=local-fs.target

[Mount]
What=/dev/sda2
Where=/
Type=btrfs
Options=noatime,max_inline=256,ssd_spread,discard,compress=lzo,space_cache,autodefrag,subvol=Dec2014

[Install]
WantedBy = local-fs.target

и ещё есть вот такое (было добавлено по совету intelfx):

# cat /etc/systemd/system/systemd-remount-fs.service.d/custom.conf 
[Unit]
ConditionPathExists=

[Service]
ExecStart=/bin/mount / -o remount,rw

может, присобачить нужные опции в строку ExecStart?

Alyssa
() автор топика
Ответ на: комментарий от Alyssa

помогло, теперь всё норм:

$ mount | grep btrfs
/dev/sda2 on / type btrfs (rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag)
/dev/sda2 on /vol type btrfs (rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag)
/dev/sda2 on /home/fragment type btrfs (rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag)
/dev/sda2 on /repo type btrfs (rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag)
/dev/sda2 on /depo type btrfs (rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag)

но это так костыльно, мне аж не нравится, может, есть другие способы, без файла /etc/systemd/system/systemd-remount-fs.service.d/custom.conf ?

Alyssa
() автор топика
Ответ на: комментарий от Alyssa

и да, когда уже mount научится выводить subvol? а то по его выводу создаётся впечатление,, что один и тот же том примонтировал в разные каталоги, лол

Alyssa
() автор топика
Ответ на: комментарий от Alyssa

когда уже mount научится выводить subvol

/me давно мечтал об этом.

Без поддержки subvol даже отследить ничего в логах не получится, если их перепутаешь. Потом сиди-гадай, почему в логах пользовательские файлы, а в хомяке половина системных конфигов. Хорошо, когда имена сабволов человекочитаемы, и их легко парсить, но человекочитаемо именовать снапшоты я не хочу.

funeralismatic ★★★
()

что за своеволие?

Алиса умеет вязать. Алиса рисует в альбомах. Алису в гостях не застать. Алиса почти всегда дома.

anonymous
()
Ответ на: комментарий от Alyssa

Хэш-сумма даты снятия снапшота с сабвола. Обычно это md5, но под особыми веществами я юзаю sha512.

funeralismatic ★★★
()
Ответ на: комментарий от Alyssa

Хмм.

/etc/mtab у тебя есть? И является ли он симлинком на /proc/self/mountinfo? В любом случае, покажи, что в нём (в тот момент, когда всё корректно смонтировано).

Дело в том, что в ядре нет понятия «не менять флаги монтирования». При remount-е старые флаги забираются из /etc/mtab или /etc/fstab, сливаются с теми, что ты указал, и результат отправляется ядру. Соответственно, если в /etc/mtab лежит хрень (а в /etc/fstab ничего нет), то результат remount-а может быть сколь угодно упоротым.

// теперь ты понимаешь, да, почему там рекомендовалось использовать fstab, а не mount-юниты?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от intelfx

у меня /etc/mtab почему-то симлинком не на /proc/self/mountinfo, а на /proc/self/mounts

$ cat /etc/mtab
rootfs / rootfs rw 0 0
/dev/sda2 / btrfs rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag 0 0
devtmpfs /dev devtmpfs rw,relatime,size=4074220k,nr_inodes=1018555,mode=755 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
tmpfs /tmp tmpfs rw 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
tmpfs /var/tmp tmpfs rw,relatime,size=7340032k 0 0
tmpfs /var/run tmpfs rw,nosuid,nodev,mode=755 0 0
/dev/sda1 /boot ext2 rw,noatime,errors=continue,user_xattr,acl 0 0
/dev/sdb1 /media/mix ext4 rw,noatime,data=ordered 0 0
/dev/sda2 /vol btrfs rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag 0 0
/dev/sda2 /home/fragment btrfs rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag 0 0
/dev/sda2 /repo btrfs rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag 0 0
/dev/sda2 /depo btrfs rw,noatime,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=815152k,mode=700,uid=1000,gid=1000 0 0
tmpfs /var/run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=815152k,mode=700,uid=1000,gid=1000 0 0
$ cat /proc/self/mountinfo
13 0 0:13 /root/Dec2014 / rw,noatime shared:1 - btrfs /dev/sda2 rw,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag
15 13 0:5 / /dev rw,relatime shared:2 - devtmpfs devtmpfs rw,size=4074220k,nr_inodes=1018555,mode=755
14 13 0:17 / /sys rw,nosuid,nodev,noexec,relatime shared:5 - sysfs sysfs rw
16 13 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:10 - proc proc rw
17 14 0:18 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime shared:6 - securityfs securityfs rw
18 15 0:19 / /dev/shm rw,nosuid,nodev shared:3 - tmpfs tmpfs rw
19 15 0:10 / /dev/pts rw,nosuid,noexec,relatime shared:4 - devpts devpts rw,gid=5,mode=620,ptmxmode=000
20 13 0:20 / /run rw,nosuid,nodev shared:11 - tmpfs tmpfs rw,mode=755
21 14 0:21 / /sys/fs/cgroup ro,nosuid,nodev,noexec shared:7 - tmpfs tmpfs ro,mode=755
22 21 0:22 / /sys/fs/cgroup/systemd rw,nosuid,nodev,noexec,relatime shared:8 - cgroup cgroup rw,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd
23 14 0:23 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime shared:9 - pstore pstore rw
24 21 0:24 / /sys/fs/cgroup/cpu,cpuacct rw,nosuid,nodev,noexec,relatime shared:12 - cgroup cgroup rw,cpu,cpuacct
25 21 0:25 / /sys/fs/cgroup/perf_event rw,nosuid,nodev,noexec,relatime shared:13 - cgroup cgroup rw,perf_event
26 21 0:26 / /sys/fs/cgroup/hugetlb rw,nosuid,nodev,noexec,relatime shared:14 - cgroup cgroup rw,hugetlb
27 21 0:27 / /sys/fs/cgroup/cpuset rw,nosuid,nodev,noexec,relatime shared:15 - cgroup cgroup rw,cpuset
28 21 0:28 / /sys/fs/cgroup/devices rw,nosuid,nodev,noexec,relatime shared:16 - cgroup cgroup rw,devices
29 21 0:29 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:17 - cgroup cgroup rw,memory
30 21 0:30 / /sys/fs/cgroup/freezer rw,nosuid,nodev,noexec,relatime shared:18 - cgroup cgroup rw,freezer
31 21 0:31 / /sys/fs/cgroup/blkio rw,nosuid,nodev,noexec,relatime shared:19 - cgroup cgroup rw,blkio
32 21 0:32 / /sys/fs/cgroup/net_cls rw,nosuid,nodev,noexec,relatime shared:20 - cgroup cgroup rw,net_cls
33 16 0:33 / /proc/sys/fs/binfmt_misc rw,relatime shared:21 - autofs systemd-1 rw,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct
34 15 0:12 / /dev/mqueue rw,relatime shared:22 - mqueue mqueue rw
35 14 0:34 / /sys/kernel/config rw,relatime shared:23 - configfs configfs rw
36 13 0:35 / /tmp rw shared:24 - tmpfs tmpfs rw
37 15 0:36 / /dev/hugepages rw,relatime shared:25 - hugetlbfs hugetlbfs rw
64 13 0:38 / /var/tmp rw,relatime shared:26 - tmpfs tmpfs rw,size=7340032k
66 13 0:20 / /var/run rw,nosuid,nodev shared:11 - tmpfs tmpfs rw,mode=755
69 13 8:1 / /boot rw,noatime shared:27 - ext2 /dev/sda1 rw,errors=continue,user_xattr,acl
80 13 8:17 / /media/mix rw,noatime shared:28 - ext4 /dev/sdb1 rw,data=ordered
70 13 0:13 / /vol rw,noatime shared:29 - btrfs /dev/sda2 rw,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag
74 13 0:13 /fragment/Dec2014 /home/fragment rw,noatime shared:31 - btrfs /dev/sda2 rw,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag
76 13 0:13 /repo /repo rw,noatime shared:32 - btrfs /dev/sda2 rw,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag
78 13 0:13 /depo /depo rw,noatime shared:33 - btrfs /dev/sda2 rw,max_inline=256,compress=lzo,ssd_spread,discard,space_cache,autodefrag
181 20 0:49 / /run/user/1000 rw,nosuid,nodev,relatime shared:127 - tmpfs tmpfs rw,size=815152k,mode=700,uid=1000,gid=1000
182 66 0:49 / /var/run/user/1000 rw,nosuid,nodev,relatime shared:127 - tmpfs tmpfs rw,size=815152k,mode=700,uid=1000,gid=1000
Alyssa
() автор топика
Ответ на: комментарий от Alyssa

Да, я ошибся, /proc/self/mounts и должен быть.

А флаги-то правильные. Если вот на этом месте сделать mount / -o remount,rw из консоли — всё сломается?

intelfx ★★★★★
()
Ответ на: что за своеволие? от anonymous

Алиса умеет вязать. Алиса рисует в альбомах. Алису в гостях не застать. Алиса почти всегда дома.

Алиса может всем дать. Бесплатно, за карамельку. Недавно сломалась кровать. Алиса опять без дела. Монтирует всякую хрень через systemd. Лучше б кровать не ломалась...

anonymous
()
Ответ на: комментарий от Alyssa

При чём тут fsck?

Погоди. Правильно ли я понимаю, что опции монтирования «ломаются» у всех ФС, а не только у корневой? Или только у корневой? Если последнее, то всё просто и понятно.

intelfx ★★★★★
()
Ответ на: комментарий от Alyssa

btrfs

Одно говно монтируешь через другое говно, результат предсказуем.

anonymous
()
Ответ на: комментарий от Alyssa

Касательно FsckPassNo: эту директиву просто дропнули, теперь все проверки выполняются параллельно. Если ты выпилил из своей системы fstab-generator, тебе придётся его заменить вручную, а именно удостовериться, что все mount-юниты имеют директивы вида

[Unit]
RequiresOverridable=systemd-fsck@dev-disk-by\x2dlabel-datastore0.service
After=systemd-fsck@dev-disk-by\x2dlabel-datastore0.service

...и отдельно сделать systemctl add-wants local-fs.target systemd-fsck-root.service, чтобы чекать корневую ФС (если у тебя нет initramfs, иначе эта проверка происходит там).

Насчёт опций ФС: ты уверен? Их нужно проверять не в выводе mount, а в /proc/self/mounts.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Насчёт опций ФС: ты уверен? Их нужно проверять не в выводе mount, а в /proc/self/mounts

да, там тоже всё норм

и отдельно сделать systemctl add-wants local-fs.target systemd-fsck-root.service, чтобы чекать корневую ФС

мне нужно бы, чтобы проверялся только разделы с ext*, потому что btrfs'у fsck не нужен

Alyssa
() автор топика
Ответ на: комментарий от King_Carlo

«Это» очень просто и понятно, если потрудиться и сделать RTFM.

Но я тебе больше скажу: это уже детали реализации. Если ты просто пользуешься системой, тебе сюда лезть не нужно.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

«Это» очень просто и понятно, если потрудиться и сделать RTFM.

А fstab был сложен и непонятен? В данном случае предлагать RTFM равноценно оскорблению.

King_Carlo ★★★★★
()
Ответ на: комментарий от King_Carlo

Разработчики systemd рекомендуют продолжать пользоваться fstab-ом. mount-юниты — это детали реализации, писать их вручную апстрим не рекомендует, поэтому если уж ты сюда полез — будь добр, RTFM (а также, вероятно, RTFC).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Разработчики systemd рекомендуют продолжать пользоваться fstab-ом.

Дожили, какие то му..ки «рекомендуют».

King_Carlo ★★★★★
()
Ответ на: комментарий от intelfx

Согласен с Алиссой Фракталовной, действительно, вдруг кому-нибудь очень пригодится.

King_Carlo ★★★★★
()
Ответ на: комментарий от Alyssa

Ок.

В общем, я предполагаю, что:

  • на самом деле флаги сломались только у корневой ФС, в остальных случаях просто тупит /bin/mount (проверяется переводом системы в сломанное состояние и чтением файла /proc/self/mounts)
  • это происходит вследствие того, что опции из -.mount ни разу не применяются (посуди сам: на момент запуска systemd корень уже примонтирован, а твой вариант systemd-remount-fs.service опции из юнита не читает)
  • решений два:
    • mount / -o remount,$(systemctl show -p Options / | sed 's/^Options=//'),rw
    • перенести опции корневой ФС в параметр ядра rootflags=, а юнит -.mount выкинуть (сам сгенерируется)
intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от Alyssa

а нет, этот способ не подойдёт, у меня grub2, он генерирует конфиг сам и там всё сложно с этим, не хочется копаться в его скриптоте

наверное, придётся оставить так, как есть сейчас

Alyssa
() автор топика
Ответ на: комментарий от Alyssa

Это-то как раз тривиально. Кастомные параметры ядра указываются в /etc/default/grub в переменной GRUB_CMDLINE_LINUX.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

да, но грабу нужно наряду с неизменными параметрами подсовывать иногда меняющиеся subvol, он сейчас это делает сам и механизм этот уходит глубоко в его скрипты, туда я лезть сейчас не хочу

Alyssa
() автор топика
Ответ на: комментарий от val-amart

я не виноватый, товарищ майор, она сама разделась!

Alyssa
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.