====== Трюки в консоли: ФС ======
==== OMV без swap ====
FIXME не совсем подходит к этому разделу. потом перенесу.
Не прижился у меня OpenMediaVault. Жду 6 версию может будет поинтереснее.
В этом чудном NAS-дистре [[https://github.com/openmediavault/openmediavault/issues/638|нельзя не использовать swap]]. Немчура разрабская говорит пшёлнафиг, не нравится ставь Debian и на него накатывай OMV.
That's by design. If you want to have the freedom to do that, then you should use Debian netinst ISO and manually install OMV according the [[https://forum.openmediavault.org/index.php?thread/25062-install-omv5-on-debian-10-buster/|guideline]] in the forum.
1
cat <> /etc/apt/sources.list.d/openmediavault.list
deb https://packages.openmediavault.org/public usul main
# deb https://downloads.sourceforge.net/project/openmediavault/packages usul main
## Uncomment the following line to add software from the proposed repository.
# deb https://packages.openmediavault.org/public usul-proposed main
# deb https://downloads.sourceforge.net/project/openmediavault/packages usul-proposed main
## This software is not part of OpenMediaVault, but is offered by third-party
## developers as a service to OpenMediaVault users.
# deb https://packages.openmediavault.org/public usul partner
# deb https://downloads.sourceforge.net/project/openmediavault/packages usul partner
EOF
2
export LANG=C.UTF-8
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
wget -O "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc" https://packages.openmediavault.org/public/archive.key
apt-key add "/etc/apt/trusted.gpg.d/openmediavault-archive-keyring.asc"
apt-get update
apt-get --yes --auto-remove --show-upgraded \
--allow-downgrades --allow-change-held-packages \
--no-install-recommends \
--option DPkg::Options::="--force-confdef" \
--option DPkg::Options::="--force-confold" \
install openmediavault-keyring openmediavault
# Populate the database.
omv-confdbadm populate
# Display the login information.
cat /etc/issue
==== Проблема 2038 года ====
xfs filesystem being mounted at /mnt/disk1337 supports timestamps until 2038
* wikipedia - [[https://ru.wikipedia.org/wiki/Проблема_2038_года|Проблема 2038 года]]
* [[https://linuxreviews.org/XFS_Patches_For_Linux_5.10_Delays_The_Year_2038_Problem_To_2486|XFS Patches For Linux 5.10 Delays The Year 2038 Problem To 2486]]
* [[https://www.phoronix.com/scan.php?page=news_item&px=XFS-Linux-5.10|XFS File-System With Linux 5.10 Punts Year 2038 Problem To The Year 2486]]
Создание ФС
mkfs.xfs -m bigtime=1 device
Конвертирование ФС
xfs_admin -O bigtime=1 device
==== Дефрагментация XFS ====
Для работы с XFS нужен пакет xfsprogs (опционально xfsdump)
Для просмотра степени фрагментации используется утилита **xfs_db**
xfs_db -r /dev/sdc1
xfs_db> frag
actual 6246, ideal 4113, fragmentation factor 34.15%
Note, this number is largely meaningless.
Files on this filesystem average 1.52 extents per file
Здесь флаг **-r** - **read-only**.
Для дефрагментации используется утилита **xfs_fsr**
Насколько я понял дефраментацию можно сделать для точки монтирования, а не раздела/устройства.
# xfs_fsr -v /mnt/data1
/mnt/data1 start inode=0
ino=156
extents before:4 after:1 DONE ino=156
ino=135
extents before:3 after:1 DONE ino=135
ino=147
==== Как посмотреть дату последней проверки файловой системы ====
# tune2fs -l /dev/sda1 | grep "Last checked"
==== Удобочитаемый вывод команды mount ====
# mount | column -t
==== Принудительно запустить fsck при следующей загрузке системы ====
{{:linux:fsck.jpg?nolink|fsck}}
via http://www.ducea.com/2008/10/24/linux-tips-force-fsck-run-during-the-next-reboot/
touch /forcefsck
==== TRIM на SSD ====
Проверить, что TRIM доступен
# hdparm -I /dev/sdf | grep "TRIM"
* Data Set Management TRIM supported (limit 1 block)
* Deterministic read data after TRIM
Поначалу использовал пример sh+cron с первой страницы гугла (''/etc/cron.weekly/fstrim.cron'')
Баш
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
Крон
chmod +x /etc/cron.weekly/fstrim.cron
Но надо идти в ногу со временем и использовать systemd
**fstrim.service**
# cat /usr/lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks
[Service]
Type=oneshot
ExecStart=/usr/sbin/fstrim -a
# cat /usr/lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
[Install]
WantedBy=multi-user.target
Достаточно сделать
# systemctl enable fstrim.timer
Проверим, что fstrim работает
# systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Sun 2020-04-12 04:58:42 MSK; 3 days ago
Docs: man:fstrim
Apr 12 04:58:42 n36l systemd[1]: Started Discard unused blocks once a week.
Успешный запуск
# journalctl -u fstrim.service --since "2 week ago"
-- Logs begin at Mon 2020-03-02 10:18:50 MSK, end at Wed 2020-04-15 17:30:01 MSK. --
Apr 13 00:00:01 n36l systemd[1]: Starting Discard unused blocks...
Apr 13 00:00:01 n36l systemd[1]: Started Discard unused blocks.