LINUX.ORG.RU

CentOS 8 не применяются параметры в /etc/fstab

 , , ,


0

1
[vsevolod@localhost ~]$ cat /proc/mounts | grep /dev/sda1
/dev/sda1 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
[vsevolod@localhost ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Feb 15 00:56:41 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=4478298d-df4e-43d5-bb8d-38e5a0ff3a1d /                       xfs     defaults,discard        0 1
systemctl daemon-reload

делал. Не хочет монтировать, как надо.

Ответ на: комментарий от bowtda
systemctl daemon-reload
systemctl restart remote-fs.target
systemctl restart local-fs.target

не сработало.

Vsevolod-linuxoid ★★★★★
() автор топика

Ты хочешь применить эти параметры без перезагрузки? systemctl start systemd-remount-fs. Или руками.

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

Не сработало:

[root@localhost ~]# systemctl start systemd-remount-fs
[root@localhost ~]# cat /proc/mounts | grep /dev/sda1
/dev/sda1 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0

Vsevolod-linuxoid ★★★★★
() автор топика

Для корня параметры в fstab не работают, для этого используется параметр rootflags.

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

У меня на Fedora 31 до этого тоже был один раздел под корень, там добавление discard в параметры сработало. Там ext4 была, правда.

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

Ну, может надо конфиг загрузчика обновить? «Само» оно не заработает, разве только при прописывании опций в суперблок, но это кроме ext4 мало что умеет.

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

И у меня ядро всё же сперва в ro монтируется, потом перемонтируется:

[root@localhost ~]# dmesg | head
[    0.000000] microcode: microcode updated early to revision 0x2e, date = 2019-06-13
[    0.000000] Linux version 4.18.0-147.5.1.el8_1.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Wed Feb 5 02:00:39 UTC 2020
[    0.000000] Command line: BOOT_IMAGE=(hd0,msdos1)/boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64 root=UUID=4478298d-df4e-43d5-bb8d-38e5a0ff3a1d ro crashkernel=auto rhgb quiet
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable

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

Я так делал, конечно. Не момогает, что странно:

[root@localhost ~]# mount / -o remount,discard
[root@localhost ~]# cat /proc/mounts | grep /dev/sda
/dev/sda1 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
Vsevolod-linuxoid ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Ничего. Только записи о том, как я sd-карту вынимал недавно:

[root@localhost ~]# mount / -o remount,discard
[root@localhost ~]# cat /proc/mounts | grep /dev/sda
/dev/sda1 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
[root@localhost ~]# dmesg | tail
[ 1691.542280] sd 2:0:0:0: [sdb] Mode Sense: 2f 00 00 00
[ 1691.542615] sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1691.545102]  sdb: sdb1
[ 1691.546351] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[ 1691.951287] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 1943.084161] IPv6: ADDRCONF(NETDEV_UP): wlp13s0: link is not ready
[ 2197.839258] sdb: detected capacity change from 31914983424 to 0
[ 2204.573937] usb 2-7: USB disconnect, device number 6
[ 2259.076029] IPv6: ADDRCONF(NETDEV_UP): wlp13s0: link is not ready
[ 2575.079971] IPv6: ADDRCONF(NETDEV_UP): wlp13s0: link is not ready

Vsevolod-linuxoid ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Не момогает, что странно

Пишут, что ограничение remount в xfs. https://lists.fedoraproject.org/archives/list/test@lists.fedoraproject.org/th...

Там же дают рабочее решение с rootflags. Первая же ссылка в гугле, Карл!

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

В случае корня на xfs задания параметра discard через /etc/fstab не поддерживается. Это делается через параметры ядра

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

А, вот в чём прикол. Система не может перемонтировать так, при монтирования после чека.

Vsevolod-linuxoid ★★★★★
() автор топика

Добавляй к параметрам ядра параметр ‘rootflags=discard’ и перезагружайся, тогда будет правильно смонтировано.

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

Спасибо, это сработало. Я переделал /etc/fstab,

[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Feb 15 00:56:41 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=4478298d-df4e-43d5-bb8d-38e5a0ff3a1d /                       xfs     defaults,discard        0 0
, добавил rootflags=discard в /etc/default/grub, обновил grub, теперь discard есть.

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

Я так делал, конечно. Не момогает, что странно

Значит, xfs не умеет включать discard в рантайме. Это и есть корневая проблема.

Если ты хочешь включить discard, передавай его в rootflags=. systemd получает управление после первоначального монтирования корневой ФС и при всём желании не сможет включить discard, если ФС этого не умеет.

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

Короче, текущая конфигурация:

[vsevolod@localhost ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Feb 15 00:56:41 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=4478298d-df4e-43d5-bb8d-38e5a0ff3a1d /                       xfs     defaults,discard        0 1
[vsevolod@localhost ~]$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rootflags=discard fsck.mode=force fsck.repair=preen"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
[vsevolod@localhost ~]$ cat /proc/mounts | grep /dev/sda1
/dev/sda1 / xfs rw,seclabel,relatime,attr2,discard,inode64,noquota 0 0
[root@localhost ~]# systemctl status systemd-fsck-root
● systemd-fsck-root.service - File System Check on Root Device
   Loaded: loaded (/usr/lib/systemd/system/systemd-fsck-root.service; enabled-runtime; vendor preset: disabled)
   Active: active (exited) since Sat 2020-02-15 13:20:17 MSK; 6min ago
     Docs: man:systemd-fsck-root.service(8)
 Main PID: 789 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 26213)
   Memory: 0B
   CGroup: /system.slice/systemd-fsck-root.service
Vsevolod-linuxoid ★★★★★
() автор топика
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Зачем ты хочешь гонять fsck.xfs при каждом запуске?

Я не уверен, что это хорошая идея, по двум причинам:

xfs_repair cannot replay a dirty log and will exit with a status code of 2 when it detects a dirty log.

Если ты крашнешь или принудительно выключишь свой компьютер, xfs_repair сделает вид, как будто ФС повреждена (exit code != 0) и загрузка прервётся, хотя на самом деле там будет просто непустой журнал.

the filesystem to be repaired must be unmounted, otherwise, the resulting filesystem may be inconsistent or corrupt

В зависимости от твого дистрибутива он может попытаться сделать fsck на примонтированной корневой ФС. XFS такое не поддерживает.

intelfx ★★★★★
()

Короче, задача решена, всем спасибо. Я решил не считать себя умнее создателей дистра и вернул всё на место, кроме discard.

gremlin_the_red — спасибо, что подсказал, как включить discard.

intelfx — спасибо, что отговорил делать fsck при каждой загрузке.

Vsevolod-linuxoid ★★★★★
() автор топика
cat<<EOF| sudo tee /etc/systemd/system/var-lib-samba.mount
[Unit]
Description=Additional drive

[Mount]
What=/dev/sda2
Where=/var/lib/samba
Type=xfs
Options=defaults

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable var-lib-samba.mount
sudo systemctl start var-lib-samba.mount

Почему не используешь systemd-mount???

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

Значит, xfs не умеет включать discard в рантайме.

К слову, quota это тоже касается.

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

Я не читал. Но для меня удобнее связка

systemd init device systemd mount device systemd start service

если что-то прошло не так, то самый конечный сервис не запустится.

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

А как это связано?

Писать руками mount-юниты необязательно. /etc/fstab транслируется в них же. Просто некоторые подсистемы в systemd читают fstab напрямую.

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