Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| linux:terminal:terminal_tnt_fs [2022/02/10 16:35] – dx | linux:terminal:terminal_tnt_fs [2022/02/15 16:29] (текущий) – dx | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Трюки в консоли: | ||
| + | ==== OMV без swap ==== | ||
| + | |||
| + | FIXME не совсем подходит к этому разделу. потом перенесу. | ||
| + | |||
| + | Не прижился у меня OpenMediaVault. Жду 6 версию может будет поинтереснее. | ||
| + | |||
| + | В этом чудном NAS-дистре [[https:// | ||
| + | | ||
| + | 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:// | ||
| + | |||
| + | 1 | ||
| + | |||
| + | <code bash> | ||
| + | cat <<EOF >> / | ||
| + | deb https:// | ||
| + | # deb https:// | ||
| + | ## Uncomment the following line to add software from the proposed repository. | ||
| + | # deb https:// | ||
| + | # deb https:// | ||
| + | ## This software is not part of OpenMediaVault, | ||
| + | ## developers as a service to OpenMediaVault users. | ||
| + | # deb https:// | ||
| + | # deb https:// | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | 2 | ||
| + | |||
| + | <code bash> | ||
| + | export LANG=C.UTF-8 | ||
| + | export DEBIAN_FRONTEND=noninteractive | ||
| + | export APT_LISTCHANGES_FRONTEND=none | ||
| + | wget -O "/ | ||
| + | apt-key add "/ | ||
| + | apt-get update | ||
| + | apt-get --yes --auto-remove --show-upgraded \ | ||
| + | --allow-downgrades --allow-change-held-packages \ | ||
| + | --no-install-recommends \ | ||
| + | --option DPkg:: | ||
| + | --option DPkg:: | ||
| + | install openmediavault-keyring openmediavault | ||
| + | |||
| + | # Populate the database. | ||
| + | omv-confdbadm populate | ||
| + | |||
| + | # Display the login information. | ||
| + | cat /etc/issue | ||
| + | </ | ||
| + | |||
| + | ==== Проблема 2038 года ==== | ||
| + | |||
| + | xfs filesystem being mounted at / | ||
| + | |||
| + | * wikipedia - [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | Создание ФС | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | Конвертирование ФС | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | ==== Дефрагментация XFS ==== | ||
| + | |||
| + | Для работы с XFS нужен пакет xfsprogs (опционально xfsdump) | ||
| + | |||
| + | Для просмотра степени фрагментации используется утилита **xfs_db** | ||
| + | |||
| + | <code bash> | ||
| + | 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** | ||
| + | |||
| + | Насколько я понял дефраментацию можно сделать для точки монтирования, | ||
| + | |||
| + | <code bash> | ||
| + | # 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 | ||
| + | </ | ||
| + | |||
| + | ==== Как посмотреть дату последней проверки файловой системы ==== | ||
| + | |||
| + | <code bash># tune2fs -l /dev/sda1 | grep "Last checked"</ | ||
| + | |||
| + | ==== Удобочитаемый вывод команды mount ==== | ||
| + | |||
| + | <code bash># mount | column -t</ | ||
| + | |||
| + | ==== Принудительно запустить fsck при следующей загрузке системы ==== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | via http:// | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== TRIM на SSD ==== | ||
| + | |||
| + | Проверить, | ||
| + | |||
| + | <code bash> | ||
| + | # hdparm -I /dev/sdf | grep " | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Поначалу использовал пример sh+cron с первой страницы гугла (''/ | ||
| + | |||
| + | Баш | ||
| + | |||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | LOG=/ | ||
| + | echo "*** $(date -R) ***" >> $LOG | ||
| + | fstrim -v / >> $LOG | ||
| + | fstrim -v /home >> $LOG | ||
| + | </ | ||
| + | |||
| + | Крон | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | Но надо идти в ногу со временем и использовать systemd | ||
| + | |||
| + | **fstrim.service** | ||
| + | |||
| + | <code bash> | ||
| + | # cat / | ||
| + | |||
| + | [Unit] | ||
| + | Description=Discard unused blocks | ||
| + | |||
| + | [Service] | ||
| + | Type=oneshot | ||
| + | ExecStart=/ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # cat / | ||
| + | |||
| + | [Unit] | ||
| + | Description=Discard unused blocks once a week | ||
| + | Documentation=man: | ||
| + | |||
| + | [Timer] | ||
| + | OnCalendar=weekly | ||
| + | AccuracySec=1h | ||
| + | Persistent=true | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </ | ||
| + | |||
| + | Достаточно сделать | ||
| + | |||
| + | <code bash># systemctl enable fstrim.timer</ | ||
| + | |||
| + | Проверим, | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl status fstrim.timer | ||
| + | ● fstrim.timer - Discard unused blocks once a week | ||
| + | | ||
| + | | ||
| + | Docs: man:fstrim | ||
| + | |||
| + | Apr 12 04:58:42 n36l systemd[1]: Started Discard unused blocks once a week. | ||
| + | </ | ||
| + | |||
| + | Успешный запуск | ||
| + | |||
| + | <code bash> | ||
| + | # 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. | ||
| + | </ | ||