Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
Очумелые Ручки
  Компьютерные
  i810
  Matrox G200
  FUJITSU MPG3102AT
  Logitech M-BT58
  NVidia FX5600-XT
  Iwill DBS100
  BIOS & PXE
  1-Wire
  Разъём на WiFi-карту
  Околокомпьютерные
OpenBSD
Cisco


www.lissyara.su —> статьи —> Очумелые Ручки —> Компьютерные —> Linux - 4

'Мелочи' или 'Ковыряния в Линуксе - 4'

Автор: Fomalhaut.


ОГЛАВЛЕНИЕ

1. Запись IMG/ISO-образа на "флешку"
2. Монтирование ISO, MDF, NRG образов
3. Парковка головок HDD Western Digital
4. Шифрование файлов с помощью OpenSSL
5. Полная копия (образ) дискового устройства
6. Создание образа дискеты
7. Управление параметрами сетевого интерфейса: отключение TCP/UDP checksum offloading
8. Резервное копирование
9. Настройка Wi-Fi Broadcom

  • a) Fedora
  • b) Scientific Linux
    10. Создание файла-шифроконтейнера через LUKS (cryptsetup)
    11. Цитатник и "корова"
    12. Монтирование без запроса пароля
    13. Отключение поддержки IPv6
    14. NFS (network file system)
  • а) сервер
  • б) клиент
  • в) автоматическое монтирование
  • г) дополнительная информация
    15. Настройка CIFS сервера Samba
    16. Распаковка RPM-пакета
    17. Снифер траффика tcpdump
    18. Установка GUI
  • а) XFCE
  • б) Enlightenment
    19. Kernel Samepage Merging (KSM)
    20. Анатомии подсистем Linux
    21. Linux From Scratch и Beyond Linux From Scratch

    1. Запись IMG/ISO-образа на "флешку"

    CD/DVD всё меньше используются, "выжимаемые" более удобными USB-накопителями. Поэтому и ставить систему проще и удобней с USB flash drive.
    Для этого образы многих ОС всё чаще создают и выкладывают для скачивания в виде файлов с расширением img или соответствующим архивом img.xz. Например, образ FreeBSD 9.1 amd64.
    "Раскатать" его на "флешку" можно одной командой:
    $ dd if=FreeBSD-9.1-RELEASE-amd64-memstick.img of=/dev/da3 bs=10240 conv=sync
    

    Или, на примере сжатого установочного IMG-файла FreeNAS 8.3.1-p2 amd64 в Linux-е (синтаксис sudo):
    # под пользователем с правами root
    # в случае XZ архива
    $ xzcat FreeNAS-8.3.1-RELEASE-p2-x64.img.xz | dd of=/dev/sde bs=64k
    # в случае GZ архива (conv= может не понадобиться)
    $ gunzip -c /mnt/sda1/hda.img.gz | dd of=/dev/hda conv=sync,noerror bs=64K
    # под обычным пользователем
    $ sudo sh -c "xzcat FreeNAS-8.3.1-RELEASE-p2-x64.img.xz | dd of=/dev/sde bs=64k"
    

    В данных командах /dev/da3 и /dev/sde - файл-устройство USB накопителя в представлении FreeBSD и Linux соответственно.
    Всё, можно пользоваться. Оставшееся на накопителе место можно использовать (уже сейчас найти накопитель объёмом менее 8Гб достаточно сложно), создав соттветствующий раздел используя свободное место.
    Для записи на "флешку" ISO-шника в Linux есть утилита livecd-tools:
    $ yum install livecd-tools
    

    Для записи образа этой утилитой пользуются так:
    $ setenforce 0
    $ su -c "livecd-iso-to-disk --format --msdos --reset-mbr --overlay-size-mb 2047 RFRemix-18-x86_64.iso /dev/sdb"
    $ setenforce 1
    

    Перед и после исполнениея команды временно отключается и включается SElinux.

    2. Монтирование ISO, MDF, NRG образов

    Поддержка ISO встроена в систему изначально, поэтому для монтирования достаточно это сделать:
    $ mount -o loop /home/Fomalhaut/Загрузки/DVD.iso /mnt/ISO
    

    Возможно появится сообщение "mount: /dev/loop0 is write-protected, mounting read-only", но это для информации, что монтирование производится только врежиме "только чтение".
    Для других форматов их предварительно надо преобразовать в ISO программами mdf2iso и nrg2iso.
    Но есть проблема: если nrg2iso присутствует в репозитории RPMFusion, то mdf2iso там (и в других штатных репозиториях) отсутствует. Но соответствующий RPM-пакет можно скачать по ссылке с сайта проекта.
    Преобразование производится весьма просто:
    # MDF в ISO
    $ mdf2iso /home/Fomalhaut/Загрузки/DVD.mdf /home/Fomalhaut/Загрузки/DVD.iso
    # NRG в ISO
    $ nrg2iso /home/Fomalhaut/Загрузки/DVD.nrg /home/Fomalhaut/Загрузки/DVD.iso
    

    А монтирование ISO было описано в начале.

    3. Парковка головок HDD Western Digital

    Взаимотношения последних дисков WD Caviar Green с пользователями было (не знаю, как сейчас) весьма противоречивым. По большей части из-за противоречивой технологии Intelli-Park, когда контроллер "винта" автоматически паркует головки после 8 секунд неактивности. Первые версии дисков с этой технологией некоторые пользователи ухитряличь ушатывать через 2-3 месяца после покупки, т.к. в S.M.A.R.T. параметр Load_Cycle_Count очень быстро увеличивался в значении, а ресурс диска по этому параметру 300000 парковок.
    Такая же проблема замечена в некоторых моделях дисков WD Red, например, WD30EFRX-68EUZN0.
    Впрочем, достаточно быстро было найдено решение проблемы.
    В этом случае делается так:

  • 1. скачивается утилита WDIDLE3 (или готовый ISO с утилитой);
  • 2. делается загрузочная флешка/диск/дискета с DOS (или диске/флешка, если скачали freedos_wdidle103.iso);
  • 3. копируется утилита WDIDLE3 на созданный раздел DOS (если взять ISO - не требуется);
  • 4. загружаемся с полученного носителя в DOS;
  • 5. выполняем команду WDIDLE3 /R для получения значения текущего таймаута (если получили ошибку, то дальше ничего не делаем ибо программа скорее всего несовместима с имеющимся жестким диском);
  • 6. выполняем команду WDIDLE3 /S<таймаут> для установки таймаута (возможные значения: от 8.0  до 12.7 с шаг 0.1 с, от 30 до 300 с шаг 30 с); обратите внимание, что пробела между S и цифрами не должно быть;
  • 7. для полного отключение таймера используем параметр /D.
    Между тем и для Linux есть возможность решения в виде утилиты idle3-tools:
  • 1. скачиваем с sourceforge.net и собираем:
    $ wget http://sourceforge.net/projects/idle3-tools/files/idle3-tools-0.9.1.tgz
    $ tar xzvf idle3-tools-0.9.1.tar.gz
    $ cd idle3-tools-0.9.1
    # для сборки нужен gcc: ставим, если не было
    $ yum install gcc
    # компилируем утилиту
    $ make
    # ставим в систему (в /sbin)
    $ sudo make install
    

    Сейчас утилита idle3-tools есть в репозиториях, поэтому достаточно её установить:
    $ yum install idle3-tools
    

  • 2. полученный исполняемый файл idle3ctl используется таким образом (иногда в этих командах требуется ключ --force):
    # получить текущее значение времени парковки
    $ idle3ctl -g105 /dev/sda
    # отключить таймер
    $ idle3ctl -d /dev/sda
    # выставить таймер "раз в минуту"
    $ idle3ctl -s 600 /dev/sda
    

    В вышеупомянутом WD30EFRX-68EUZN0 максимальное время, которое можно указать для таймера - 255.
    Дополнительные параметры доступны по ключу -h.
    Так же есть программа hdparm, которая так же позволяет работать с параметрами жёстких дисков. Специально для поддержки "винтов" WD предусмотрена специальный ключ -J, так же позволяющий отключить автопарковку.
    УТОЧНЕНИЕ: не для всех дисков можно отключить автопарковку. В некоторых это невозможно и тогда имеет смысл выставить значение таймера на максимально возможную величину.

    4. Шифрование файлов с помощью OpenSSL

    Шифрование файла:
    $ openssl enc -e -aes-256-cbc -k <файл_с_паролем> -in <файл> -out <файл>
    

    Расшифровывание файла:
    $ openssl enc -d -aes-256-cbc -k <файл_с_паролем> -in <файл> -out <файл>
    

    При необходимости можно вместо пароля воспользоваться ключами.
    Все поддерживаемые алгоритмы можно узнать через ключ --help.

    5. Полная копия (образ) дискового устройства

    Не редко требуется создать полную копию (посекторно) накопителя или раздела.
    Кроме этого не плохо бы этот образ сжать (т.к. делается копия всего, в том числе и свободного места). Ну и для полного "фарша" подсчитать контрольную сумму (хеш).
    # создание образа
    $ dd if=/dev/sda1 bs=8M conv=sync,noerror | gzip -9cf > /mnt/backup/sda1.dd-image.gz
    # распаковка образа и восстановление раздела/диска
    $ gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8M conv=sync,noerror
    

    Для контроля целостности источника и/или его образа:
    # подсчёт хэша MD5 для раздела
    $ dd if=/dev/sda1 bs=8M| md5sum - > sda1.dd-image.md5
    # подсчёт хэша MD5 сохранённого образа
    $ gunzip -c sda1.dd-image.gz | md5sum
    

    Вместо MD5 можно считать хэши SHA утилитой shasum, выбирая ключём --algorithm (-a) необходимую версию алгоритма (или утилитами sha1, sha256).
    Во время создания образа можно наблюдать за процессом
    # определяем pid процесса dd...
    $ ps | grep dd
    #... и подставляем его в следующую команду
    $ watch -n 15 "kill -USR1 $pid_of_dd"
    

    В консоли, где запущен процесс каждые 15 секунд будет появляться информация вида:
    6395049+0 записей получено
    6395048+0 записей отправлено
    скопировано 52388233216 байт (52 GB), 1679,25 c, 31,2 MB/c
    6449518+0 записей получено
    6449518+0 записей отправлено
    скопировано 52834451456 байт (53 GB), 1694,27 c, 31,2 MB/c

    Прерывание работы команды watch прекратит вывод этой информации.

    6. Создание образа дискеты

    Подготовка образа:
    # создание файла-образа, заполненого нулями
    $ dd if=/dev/zero of=./floppy.img bs=512 count=2880
    # создание файловой системы на нашем файле-дискете
    $ mkfs.vfat ./floppy.img
    # монтирование для использования
    $ mount ./floppy.img /mnt/floppy
    

    Для чего сейчас могут использоваться дискеты - особо не представляю, кроме случая, когда надо "подсунуть" драйвера с "виртуалку". Хотя, говорят, наш досточтимый СберБанк до сих пор для Банк-Клиента используем дискеты.

    7. Управление параметрами сетевого интерфейса: отключение TCP/UDP checksum offloading

    TCP/UDP checksum offload (TCO) - параметр сетевой карты, позволяющий переключить расчёт контрольных сумм сетевых пакетов на уровне сетевой карты, её процессором/контроллером. Это позволяет, например, при высокой сетевой нагрузке на данный компьютер/сервер существенно разгрузить центральный процессор,
    Но в случае с ОС, запущенной в виртуальной среде это сказывается негативно, т.к. сетевой интерфейс виртуального компьютера так же виртуален, т.е. все вычисления так или иначе производятся на центральном процессоре. Но при включенном TCO это негативно может сказаться на работе всей ВМ (по непонятной мне причине). Поэтому рекомендовано в случае виртуальных систем данный параметр отключать.
    Для управления низкоуровнеными параметрами сетевых интерфейсов ethernet используется утилита ethtool (устанавливается одноимённым пакетом ethtool).
    # Каковы текущие настройки TCO на интерфейсе eth0
    $ ethtool --show-offload eth0
    # Отменяем TCO для пакетов на приём и передачу
    $ ethtool --offload eth0 rx off tx off
    # В примере ещё отключался GSO (generic segmentation offload)
    # но мне не ясен смысл - может и нет необходимости
    $ ethtool --offload eth0 gso off
    # Каковы результирующие настройки TCO на интерфейсе eth0
    $ ethtool --show-offload eth0
    

    Множеством других параметров тонкой настройки сетевых интерфейсов утилитой ethtool доступны в man ethtool.

    8. Резервное копирование

    В мире Unix/Linux наиболее распространены следующие утилиты для организации резервного копирования (в том числе инкрементального):
    1) rsync - http://rsync.samba.org/
       winrsync - http://vds-admin.ru/unix-toolbox/rsync
    2) fsbackup - http://www.opennet.ru/dev/fsbackup/
    3) rdiff-backup - http://www.nongnu.org/rdiff-backup/
    4) rsnapshot - http://www.rsnapshot.org/
      Использование: ссылка 1, ссылка 2.
    5) Duplicity - http://duplicity.nongnu.org/
      Использование: ссылка 1.
    6) DAR - http://dar.linux.free.fr/
      Использование: ссылка 1, ссылка 2.
    Настройка резервного копирования в Ubuntu
    Rsync синхронизация и backup
    резервное копирование rsync-ом
    rsync ()

    9. Настройка Wi-Fi Broadcom

    Имеется ноутбук HP 6830s, комплектующийся беспроводным модулем Broadcom BCM4312:
    # lspci | grep 802.11
    03:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)

    a) Fedora

    Штатное ядро Федоры данный модуль не поддерживает, поэтому надо ставить драйвера.
    Есть два варианта: открытый и проприетарный.
    ОТКРЫТЫЙ
    Проверим наличие пакета b43-openfwwf следующей командой:
    $ yum list installed b43-openfwwf
    

    Если пакет отсутствует среди установленных (что бывает крайне редко), то устанавливаем его командой:
    $ yum install b43-openfwwf
    # перезапускаем модуль: 
    $ modprobe -r b43; modprobe b43
    

    Есть два варианта, WiFi не запустился и не стал обнаруживать точки доступа вокруг себя, тогда пробуем следующие варианты.
    Открытый, судя по отзывам - достаточно глючный (к сожалению), а вот проприетарный, опять же по отзывам, достаточно стабилен.
    ПРОПРИЕТАРНЫЙ
    Проприетарную прошивку можно скачать по ссылке: http://downloads.openwrt.org/sources/ из файлов с именем broadcom-wl-*, например:
    $ wget http://downloads.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
    # распаковываем
    $ tar xjf broadcom-wl-4.150.10.5.tar.bz2
    $ cd broadcom-wl-4.150.10.5/driver
    

    Устанавливаем прошивки в дерево ядра:
    $ b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o
    $ modprobe -r b43; modprobe b43
    $ modprobe -r brcmsmac; modprobe brcmsmac
    

    Если повезло - Wi-Fi заработает. Если же нет...
    Ещё можно установить проприетарный (неподдерживаемый) драйвер.
    $ yum install akmod-wl
    

    Вместе с пакетов должен установится файл /etc/modprobe.d/broadcom-wl-blacklist.conf. Бывает, что майнтайнер 'забывает' положить данный файл в пакет и могут быть проблемы. Обязательно убедитесь, что он установился!
    Если же файла всё таки не окажется после установки драйвера, то надо создать его вручную с таким содержанием (важно: в конце должна быть пустая строка):
    blacklist bcm43xx
    blacklist ssb
    blacklist b43
    blacklist ndiswrapper
    
    

    Данный файл запрещает запуск "нативных" модулей (драйверов) из поставки ядра Linux.
    Теперь надо, чтобы на этапе до загрузки корневого раздела ядро не загружало эти модули:
    $ /usr/libexec/plymouth/plymouth-update-initrd
    

    Дополнительная информация: Установка драйверов на Wi-Fi Broadcom для Fedora, Как настроить WiFi в любом Linux-дистрибутиве, Wi-Fi карта Broadcom BCM4312 и b43 драйвер в Mageia 2, Настройка беспроводного соединения в Debian GNU/Linux.

    b) Scientific Linux

    1) скачиваем соответствующий драйвер с сайта Broadcom (на текущий момент версии 6.30.223.271):
    $ wget https://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
    

    2) распаковываем:
    $ mkdir -p /home/user/src/hybrid-wl
    $ cd /home/user/src/hybrid-wl
    $ tar xvfz /path/to/the/tarball/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
    $ chown -R <user>.<group> /home/user/src/hybrid-wl
    

    3) исправляем (патчим) исходники в зависимости от версии системы:
    а) для SL6 накладываем патч:
    $ patch -p1 < ./wl-kmod-fix-ioctl-handling.patch
    

    б) для SL7 корректируем в исходниках версии ядер:
    $ sed -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
    $ sed -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
    $ sed -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
    $ sed -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
    

    4) собираем пропатченый модуль:
    $ make -C /lib/modules/`uname -r`/build/ M=`pwd`
    

    5) очищаем скомпилированный драйвер от отладочных символов:
    $ strip --strip-debug wl.ko
    

    6) копируем полученный драйвер:
    $ cp -vi ./wl.ko /lib/modules/`uname -r`/extra/
    

    7) выгружаем иные модули для Broadcom, чтобы избежать конфликтов:
    $ modprobe -r bcm43xx
    $ modprobe -r b43
    $ modprobe -r b43legacy
    $ modprobe -r ssb
    $ modprobe -r bcma
    $ modprobe -r brcmsmac
    $ modprobe -r ndiswrapper
    

    8) создаём список зависимостей модулей и загружаем наш:
    $ depmod $(uname -r)
    $ modprobe wl
    

    9) редактируем файл /etc/modprobe.d/blacklist.conf, добавляя (важно: в конце должна быть пустая строка):
    blacklist bcm43xx
    blacklist b43
    blacklist b43legacy
    blacklist bcma
    blacklist brcmsmac
    blacklist ssb
    blacklist ndiswrapper
    
    

    10) создаём/редактируем файл /etc/sysconfig/modules/kmod-wl.modules:
    #!/bin/bash
    
    for M in lib80211 cfg80211 wl; do
        modprobe $M &>/dev/null
    done
    

    К сожалению для ядер 3.10.0-514.el7 и более новых данный способ не подходит: модуль не собирается, а собранный для более старых ядер - не работает. Последняя версия ядра, где всё вышеописанное актуально - 3.10.0-327.36.3.el7.

    10. Создание файла-шифроконтейнера через LUKS (cryptsetup)

    В связи с прекращением разработки программы TrueCrypt (в репозиториях Федоры - RealCrypt) возникла необходимость найти замену.
    Сразу пал выбор на Linux dm-crypt (device-mapper), который здесь и опишу.
    Изначально создаём файл, который у нас в дальнейшем будет криптоконтейнером, например, в 20 Мб:
    # обычный "полный" файл, заполненный нулями
    $ dd if=/dev/zero of=/tmp/file.img bs=1024k count=20
    # разреженный (sparse) файл
    $ dd if=/dev/zero of=/tmp/file.img seek=20 bs=1024k count=1
    

    Смонтируем его, как блочное устройство loop:
    $ losetup /dev/loop101 /tmp/file.img
    

    Теперь можно делать с ним что угодно в плане шифрования, программой cryptsetup, как с любым блочным устройством.
    Для отмонтирования loop-устройства:
    $ losetup --detach /dev/loop101
    

    Можно ли работать с блочным устройством как с файлом? Или как отказаться от ФС.
    Монтируемый при загрузке зашифрованный раздел
    Disk Encryption User Guide

    11. Цитатник и "корова"

    Захотелось прикрутить подстановку случайной цитаты при написании писем в Sylpheed: в The Bat! такое реализовано, а у меня поднакопилась личная подборка цитат. :)
    Для начала надо установить наш "цитатник":
    $ yum install fortune-mod
    

    Имеющийся у меня список цитат был не в подходящем для fortune: просто список "строка-цитата". Для fortune же надо, чтобы цитаты разделялись строкой с символом "%". Для этого воспользуемся неинтерактивным тектовым редактором sed:
    $ sed -i ':a;N;$!ba;s/\n/\n%\n/g' MyQuote
    

    После этого надо создать dat-файл (как я понимаю - индексный файл):
    $ strfile MyQuote MyQuote.dat
    

    Всё, теперь достаточно указать наш файл с цитатами программе:
    $ fortune MyQuote
    > Видеть легко, трудно предвидеть.       (C) Б.Франклин
    

    Осталось настроить Sylpheed: копируем файлы MyQuote и MyQuote.dat в целевой каталог (например, /home/user/.sylpheed-2.0/fortunes/, предварительно его (fortunes) создав), в самом почтовике: заходим в "Настройки учётной записи", на закладку "Написать", выбираем "Вывод команды" и ниже указываем:
    fortune /home/user/.sylpheed-2.0/fortunes/MyQuote
    

    Теперь при создании нового письма под строкой подписи (обычно "", у меня "===-------") будет автоматически поставляться цитата. Хорошо! :)
    Теперь поставим "корову": утилиту, которая в ASCII-графике рисует корову (по умолчанию, зверья там много), которая произносит что угодно, например, вышеприкрученные к fortune цитаты.
    Ставим саму утилиту:
    $ yum install cowsay* xcowsay
    

    И скормим этому зверьку цитату:
    $ fortune MyQuote | cowsay
     ________________________________ 
    < > Скажи себе "HЕТ"! >
     -------------------------------- 
            \   ^__^
             \  (oo)\_______
                (__)\       )\/\
                    ||----w |
                    ||     ||
    

    Можно указать ширину сообщения в 50 символов и в качестве зверя выбрать, например, даемонёнка (все звери представлены в каталоге /usr/share/cowsay):
    $ fortune MyQuote | cowsay -W 50 -f daemon.cow
    

    Ну и можно теперь это "прикрутить" куда угодно, например, в файл .bashrc.

    12. Монтирование без запроса пароля

    По умолчанию для монтирования разделов локально подключенных дисков, флешек и пр. система запрашивает пароль пользователя с правами root. Чтобы от этого "избавиться" надо создать файл /etc/polkit-1/rules.d/60-mount-without-password.rules с таким содержанием:
    polkit.addRule(function(action, subject) {
         if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
             subject.isInGroup("wheel") && subject.active) {
             return polkit.Result.YES;
         }
     });
    

    Остаётся только задать необходимые права данному файлу:
    $ chown root:root 60-mount-without-password.rules
    $ chmod 644 60-mount-without-password.rules
    

    Права даются пользователям, входящим в группу wheel. Если ваш текущий пользователь входит в эту группу, то нет необходимости перегружаться - всё работает сразу.

    13. Отключение поддержки IPv6

    Для полного отключения поддержки IPv6 на узле надо в файл /etc/sysctl.d/disable_ipv6.conf (либо вписать их в файл /etc/sysctl.conf) добавить параметры:
    net.ipv6.conf.all.disable_ipv6=1
    net.ipv6.conf.default.disable_ipv6 = 1
    

    Применение: перезагрузкой или командой:
    $ sysctl -p
    

    Создаём файл /etc/modprobe.d/disable-ipv6.conf:
    options ipv6 disable=1
    alias net-pf-10 off
    alias ipv6 off
    install ipv6 /bin/true
    

    В файл /etc/sysconfig/network добавляем:
    NETWORKING_IPV6=no
    IPV6INIT=no
    

    Останавливаем и отключаем ip6tables (если используется):)
    $ systemctl stop ip6tables
    $ systemctl disable ip6tables
    

    В параметры загрузки ядра можно добавить
    ipv6.disable=1
    

    Основное всё. Можно ещё в системных файлах убрать упоминание, но это уже не существенно.

    14. NFS (network file system)

    В мире unix/linux есть много разных сетевых файловых систем. Но самое распространённое и универсальное - NFS, построенная по клиент-серверно му варианту.
    О настройке NFS в ОС FreeBSD можно почитать здесь.

    а) сервер

    Для работы NFS сервера необходимо наличие соответствующего пакета в системе:
    $ yum install nfs-utils
    

    Для запуска достаточно выполнить
    $ systemctl start nfs-server
    $ systemctl enable nfs-server
    

    Этот сервис запустит дочерние сервисы NFS: nfs-config, nfs-idmapd, nfs-mountd), b]rpc-statd[/b] (в выводе команды rpcinfo они имеются portmapper, status, mountd, nfs / nfs_acl, nlockmgr). Их параметры указываются в файлах /etc/sysconfig/nfs и , а так же/etc/idmapd.conf (для nfs-idmap).
    Для доступа (монтирования) опубликованных ресурсов на удалённой машине необходимо открыть в firewalld соответствующий порт, указывая зарегистрированный сервис:
    $ firewall-cmd --permanent --zone=public --add-service=nfs
    $ firewall-cmd --reload
    


    Если необходимо видеть по команде
    $ showmount -e 192.168.1.2
    

    с удалённой машины список публикуемых ресурсов (шар, share), то необходимо выполнить дополнительные действия.
    В частности, необходимо добавить порты 20048 и 111 в firewalld. Как это сделать через firewalld-cmd я не разобрался, но можно внести эти порты в XML-файл сервиса NFS: /etc/firewalld/services/nfs.xml.
    Файл /etc/sysconfig/nfs предназначен для "тонкой" настройки NFS. Там указываются, например, порты TCP/UDP для сервиса nlockmgr в форме (если понадобится их зафиксировать, чтобы открыл на firewalld):
    LOCKD_TCPPORT=32803
    LOCKD_UDPPORT=32769
    # раньше был для nfs-mountd, но теперь изъят из конфига
    #MOUNTD_PORT=892
    

    Хотя с Fedora 21 рекомендуют при необходимости использовать сервис lockd указывать(раскомментировать) его параметры в файле /etc/modprobe.d/lockd.conf (перезагрузка после внесения изменений необходима):
    options lockd nlm_tcpport=32803 nlm_udpport=32769
    

    Но у меня при этом не запускается сервер NFS, поэтому использую старый способ.
    В файле /etc/idmapd.conf:
    Domain = localdomain
    

    Теперь, в случае необходимости открытия всех портов NFS, общий список этих портов такой:
    2049/tcp  - nfs / nfs_acl
    875/tcp   - rquotad
    111/tcp   - portmapper
    32803/tcp - nlockmgr (как в файле /etc/nfs)
    20048/tcp - mountd
    # и соответствщие им UDP порты
    # если используется этот протокол
    2049/udp  - nfs / nfs_acl
    875/udp   - rquotad
    111/udp   - portmapper
    32769/udp - nlockmgr (как в файле /etc/nfs)
    20048/udp - mountd
    

    Например, для iptables и firewalld:
    # iptables (netfilter)
    $ iptables -I INPUT -m state --state NEW -p tcp -m multiport \
         -- dport 111,875,2049,20048,32803 -s 192.168.1.0/24 -j ACCEPT
    $ iptables -I INPUT -m state --state NEW -p udp -m multiport \
         -- dport 111,875,2049,20048,32769 -s 192.168.1.0/24 -j ACCEPT
    # для firewalld (2049 - nfs3, 20048 - mountd, 111 - rcp-bind)
    $ firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
         source address="192.168.122.138/32" service name="nfs3" accept'
    $ firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
         source address="192.168.122.138/32" service name="mountd" accept'
    $ firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \
         source address="192.168.122.138/32" service name="rpc-bind" accept'
    

    Собственно, из дополнительных действий - всё.



    Для описания экспортируемых ФС необходимо параметры экспорта описать в файле /etc/export, например:
    /home 192.168.1.1(rw,sync,no_root_squash) 192.168.122.138(rw,sync,no_root_squash,subtree_check,pnfs)
    /mnt/archiv 192.168.122.138(rw,sync,all_squash,subtree_check,pnfs,anonuid=1000,anongid=1000)
    

    ВНИМАНИЕ!!! Использовать параметр no_root_squash (в примере выше он указан) не рекомендуется, т.к. удалённые пользователи root могут изменить любой файл в разделяемой файловой системе и оставить для других пользователей троянские приложения (загрузив их и установив флаг setuid).
    Если после запуска сервера изменять файл /etc/export, то не надо перезапускать сервер NSF, а достаточно обновить информацию об экспортируемых ФС командой:
    $ exportfs -r
    

    Для локальной проверки списка экспортируемых ФС:
    $ showmount -e
    Export list for mycomp.localdomain:
    /home 192.168.1.1
    

    Для локальной проверки используемых службами NFS портов:
    $ rpcinfo -p
    

    На стороне сервера базовые работы закончены.

    б) клиент

    Поддержка NFS интегрирована в ядро, поэтому доп.действий делать не надо, если ядро стандартное. Достаточно выполнить команду:
    $ mount -t nfs 192.168.1.2:/home/ /home
    

    Или сразу вписать в /etc/fstab:
    192.168.1.2:/home /home                    nfs     defaults        0 0
    

    ПРОБЛЕМА 1: При монтировании или просмотре списка опубликованных удалённых ресурсов возникает ошибка:
    $ showmount -e 192.168.1.2
    clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

    Значит либо не все демоны на стороне сервера NFS запущены, либо нет доступа, например, блокирует межсететвой экран.
    ПРОБЛЕМА 2: При монтировании возникает такая ошибка:
    $ mount -t nfs 192.168.1.2:/home /home
    mount.nfs: access denied by server while mounting 192.168.1.2:/home
    

    Вероятно проблема с опциями экспорта (в файле /etc/exports на стороне сервера).
    ПРОБЛЕМА 3: При монтировании возникает ошибка
    $ mount -t nfs 192.168.1.2:/home /home
    Job for rpc-statd.service failed. See "systemctl status rpc-statd.service" and "journalctl -xe" for details.
    mount.nfs: rpc.statd is not running but is required for remote locking.
    mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
    

    При это при просмотре статуса сервиса rpc-statd видим:
    systemd[1]: Failed to start NFS status monitor for NFSv2/3 locking..
    

    Проблема в некорректном запуске сервиса rpcbind или вообще его отключенном состоянии.
    Решается его запуском и сразу же - перезапуском:
    $ systemctl start rpcbind.service
    $ systemctl restart rpcbind.service
    

    Но после перезагрузки придётся повторять перезапуск.
    В дальнейшем, надеюсь, эта проблема будет решена, а как временное решение: создаём файл /etc/NetworkManager/dispatcher.d/20-nfs следующего содержания:
    #!/bin/sh
    
    case "$2" in
        up|down)
            /bin/systemctl restart rpcbind.service || :
            ;;
    esac
    

    И назначаем ему права:
    $ chown root:root /etc/NetworkManager/dispatcher.d/20-nfs
    $ chmod +x /etc/NetworkManager/dispatcher.d/20-nfs
    

    Теперь Network Manager будет периодически "дёргать" этот сервис.

    в) автоматическое монтирование

    Bog BOS: autofs - автоматическое монтирование файловых систем по запросу
    Bog BOS: Пакет утилит для автоматического монтирования файловых систем am-utils (amd)

    г) дополнительная информация

    Запуск и настройка NFS
    Administration Guide Draft/NFS

    15. Настройка CIFS сервера Samba

    В Linux в ядре с конфигурацией "по умолчанию" встроена поддержка CIFS/SMB сетей в качестве клиентской системы и в системе есть пакеты базовой поддержки: samba-client, samba-common, samba-libs. И для подключения к Windows ресурсам их [ресурсы] достаточно смонтировать.
    Если же необходимо использовать систему с Linux в качестве сервера, то необходимо установить соответствующий пакет:
    # если будет консольная настройка и сопровождение 
    $ yum install samba
    # если необходима утилита графической настройки
    $ yum install system-config-samba
    # сервер Samba будет установлен, как зависимость
    

    Конфигурационный файл "по умолчанию" сохраним в качестве примера:
    $ cp /etc/samba/smb.conf /etc/samba/smb.conf-0
    

    А оригинал /etc/samba/smb.conf приведём к виду:
    #======================= Global Settings =====================================
    [global]
    ###=------------------------ Network-Related Options -------------------------
            workgroup = HOME.LOCAL
            server string = Samba Server Version %v
            netbios name = MYHOST
            interfaces = lo bridge0 192.168.1.2/24
            hosts allow = 127.0.0. 192.168.1.
            socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 IPTOS_LOWDELAY IPTOS_THROUGHPUT
            max protocol = SMB2
    ###=---------------------------- Logging Options -----------------------------
            log level = 10 passdb:5 auth:10 winbind:10
            ### log files split per-machine:
            log file = /var/log/samba/log.%m
            ### maximum size of 50KB per log file, then rotate:
            max log size = 50
    ###=----------------------- Standalone Server Options ------------------------
            security = user
            passdb backend = tdbsam
    ###=-------------------------- Name Resolution -------------------------------
            wins support = no
            wins server = 192.168.1.11
            wins proxy = yes
            dns proxy = yes
    ###=-------------------------- Разное ----------------------------------------
            smb passwd file = /etc/samba/smbpasswd
            passdb backend = tdbsam
            guest account = nobody
            local master = yes
            unix charset = utf8
            dos charset = cp1251
    ;       display charset = UTF8
            pid directory = /var/run
    ###=--------------------------- Printing Options -----------------------------
    ;       load printers = yes
    ;       cups options = raw
    ;       printcap name = /etc/printcap
            ### obtain a list of printers automatically on UNIX System V systems:
    ;       printcap name = lpstat
    ;       printing = cups
    ###=-------------------------- File System Options ---------------------------
    ;       map archive = no
    ;       map hidden = no
    ;       map read only = no
    ;       map system = no
    ;       store dos attributes = yes
    
    #============================ Share Definitions ==============================
    [homes]
            comment = Home Directories
            browseable = no
            writable = yes
            valid users = %S
    ;       valid users = MYDOMAIN\%S
    ;[printers]
    ;       comment = All Printers
    ;       path = /var/spool/samba
    ;       browseable = no
    ;       guest ok = no
    ;       writable = no
    ;       printable = yes
    ### Un-comment the following and create the netlogon directory for Domain Logons:
    [netlogon]
            comment = Network Logon Service
            path = /var/lib/samba/netlogon
            guest ok = yes
            writable = no
    ;       share modes = no
    ### Un-comment the following to provide a specific roving profile share.
    ### The default is to use the user's home directory:
    [profiles]
            path = /var/lib/samba/profiles
            browseable = no
            guest ok = yes
    ### A publicly accessible directory that is read only, except for users in the
    ### "staff" group (which have write permissions):
    ;[public]
    ;       comment = Public Stuff
    ;       path = /home/samba
    ;       public = yes
    ;       writable = yes
    ;       printable = no
    ;       write list = +staff
    [Disk_D]
            path = /mnt/Disk_D
            browseable = yes
            public = yes
            writable = yes
    ;       readonly = no
            valid users = MyUser
    ;       invalid users = guest
            create mask = 0644
            directory mask = 0755
    


    Важная опция для smb.conf, когда Linux является клиентом, а не сервером:
    client ntlmv2 auth = yes
    

    Без этой опции в /etc/samba/smb.conf наутилус и прочие GUI отказываются нормально ходить на Samba-сервер.



    Запустим сервисы Самбы и сделаем из автозапускаемыми:
    $ systemctl enable smb
    $ systemctl enable nmb
    $ systemctl start smb
    $ systemctl start nmb
    

    Создаём пользователя в системе (если целевой уже есть, пропускаем этот и следующий шаг и сразу сознаём Samba-пользователя):
    $ useradd -M -l -s /sbin/nologin MyUser
    

    , где -M - создать без "домашней" папки; /sbin/nologin - чтобы по ssh не могли зайти.
    Указываем пароль пользователя:
    $ passwd MyUser
    

    Создаем Samba-пользователя:
    $ smbpasswd -a MyUser
    


    Если необходимо сделать доступ без пароля (гостевой), то надо в /etc/samba/smb.conf прописать:
    # в секцию [Global]
    map to guest = bad password
    # в секцию гостевой шары
    guest ok = yes
    

    map to guest = bad password : если пользователь Samba существует в системе и введен неверный пароль, то вход этого пользователя отклоняется, если пользователя не существует, тогда ему присваивается статус "гость")



    Проверяем локальную доступность прописанных общих ресурсов (вместо пароля можно просто Enter):
    $ smbclient -L localhost
    

    Теперь надо настроить огнестен firewalld, чтобы открыть доступ для внешних систем или виртуальных. Посмотрим конфигурацию "по умолчанию":
    $ firewall-cmd --list-all
    public (default)
      interfaces: 
      sources: 
      services: ssh zabbix-agentd
      ports: 
      masquerade: no
      forward-ports: 
      icmp-blocks: 
      rich rules: 
    

    Видно, что профиль "по умолчанию" - public, к которому не привязан ни один интерфейс и открыты порты служб ssh и zabbix-agentd.
    Если в системе установлено и используется более одного сетевого интерфейса (с учётом виртуальных (bridge, bond и других) и необходимо доступ к серверу Sanba открыть только одному, то продолжаем (но даже с одним сетевым интерфейсом не будет плохого настроить так же). В моём случае надо настроить доступ гостевой системе с Windows, т.е. для интерфейса моста bridge0.
    Проверяем, не добавлен ли интерфейс в какую-либо другую зону, кроме "по умолчанию":
    $ firewall-cmd --get-zone-of-interface=bridge0
    no zone
    

    В данном случае "нет зон", но в ином случае будут указаны зоны, к которым приписан указанный интерфейс.
    Настроим зону с указанием постоянного применения новых параметров:
    # добавим сервис sabma зоне public
    $ firewall-cmd --permanent --zone=public --add-service=samba
    # добавим с требуемой зоне интерфейс bridge0
    $ firewall-cmd --permanent --zone=public --add-interface=bridge0
    

    Перезапустим сервис firewalld (иногда внесённые изменения не применяются сразу):
    $ systemctl restart firewalld
    

    Посмотрим результат:
    $ firewall-cmd --list-all
    public (default, active)
      interfaces: bridge0
      sources: 
      services: samba ssh zabbix-agentd
      ports: 
      masquerade: no
      forward-ports: 
      icmp-blocks: 
      rich rules: 
    

    Осталось изменить некоторые параметры SELinux (взято у elemc).
    По-умолчанию SELinux в Fedora почти ничего samba-серверу не разрешает, но это можно скорректировать. Посмотрим на текущее состояние разрешений:
    $ getsebool -a | grep -E "smb|samba"
    samba_create_home_dirs --> off
    samba_domain_controller --> off
    samba_enable_home_dirs --> off
    samba_export_all_ro --> off
    samba_export_all_rw --> off
    samba_portmapper --> off
    samba_run_unconfined --> off
    samba_share_fusefs --> off
    samba_share_nfs --> off
    sanlock_use_samba --> off
    smbd_anon_write --> off
    use_samba_home_dirs --> off
    virt_sandbox_use_samba --> off
    virt_use_samba --> off
    

    Описание этих параметров (не всем):
    Параметр
    Описание
    allow_smbd_anon_write разрешить запись гостями (не авторизованными пользователями)
    samba_create_home_dirs samba может создавать домашние каталоги (обычно это полезно в доменах)
    samba_domain_controller разрешить использование в качестве контроллера домена
    samba_enable_home_dirs разрешить шарить пользовательские каталоги
    samba_export_all_ro разрешить любой экспорт на "только чтение"
    samba_export_all_rw тоже самое для "читать-писать"
    samba_run_unconfined разрешить samba запускать скрипты с контекстом unconfined (это неопределённый контекст SELinux)
    samba_share_fusefs разрешить шарить примонтированные fuse’ом ресурсы (на смотнированых ntfs-разделах и прочего через FUSE)
    samba_share_nfs разрешить шарить примонтированные NFS-ресурсы
    use_samba_home_dirs разрешает использовать каталоги /home
    virt_use_samba виртуалы могут использовать samba с хоста

    Устанавливаем нужные параметры в требуемом значении утилитой setsebool. Например, я использую такую комбинацию:
    $ setsebool -P virt_use_samba=1 use_samba_home_dirs=1 samba_export_all_rw=1 samba_export_all_ro=1 samba_enable_home_dirs=1
    

    Данная команда может применяться достаточно долго.
    Дополнительная информация:
    1) Samba;
    2) Samba в Fedora GNU/Linux.

    16. Распаковка RPM-пакета

    Обычный rpm-пакет представляет из себя простой архив формата cpio с небольшим набором метаданных.
    $ rpm2cpio package.rpm | cpio -dimv
    

    С помощью этой команды можно извлечь содержимое rpm-пакета.
    Передаем в качестве параметра стандартной утилите rpm2cpio имя rpm-файла, который необходимо распаковать и перенаправляем ее вывод на архиватор cpio.
    Флаг -i сообщает cpio, что нужно распаковать архив, флаг -d — что необходимо сохранить структуру директорий. Флаг -v сообщает, что нужно вывести список распакованных файлов, и -m позволяет наследовать даты модификаций извлекаемых файлов.

    17. Снифер траффика tcpdump

    Применение:
    $ tcpdump -i eth0 -n -nn -ttt 'ip proto \icmp and dst host 192.168.1.16 and src host 10.80.0.16'
    $ tcpdump -i eth0 -n -nn -ttt 'ip proto \icmp and host 192.168.1.16 and host 10.80.0.16'
    $ tcpdump -i eth0 -n -nn -ttt 'dst host 192.168.1.16 and src host 10.80.0.16'
    $ tcpdump -i eth0 -n -nn -ttt 'host 192.168.1.16 and host 10.80.0.16'
    $ tcpdump -i eth0 -n -nn -ttt 'ip proto \icmp'
    $ tcpdump -i eth0 -n -nn -ttt 'host 192.168.1.16 and host 10.80.0.16 and (port 80 or ip proto \icmp)'
    $ tcpdump -i eth0 -n -nn -ttt 'host 192.168.1.16 and net 172.16.16.0 mask 255.255.255.0 and port 80'
    $ tcpdump -i eth0 -n -nn -ttt 'host 192.168.1.16 and net 172.16.16.0 mask 255.255.255.0 and (port 80 or ip proto \icmp)'
    $ tcpdump -i eth0 -n -nn -ttt 'host 192.168.1.16 and host 192.168.1.1 and no port 51513'
    

    Дополнительная информация:
    1) tcpdump [Wikipedia]
    2) tcpdump [IT рабочие заметки]
    3) Мониторинг сети с помощью tcpdump

    18. Установка GUI

    а) XFCE

    Если система установлена в минималистичном варианте, то необходимо установить некоторые отдельные пакеты:
    $ yum install bzip2
    

    Ставим необходимые пакеты через группы:
    $ yum groupinstall Xfce
    $ yum groupinstall "Система X Window"
    # или так
    $ yum groupinstall xfce-desktop
    $ yum groupinstall x11
    

    Для XFCE лично мой набор дополнений:
    $ yum install xfce4-verve-plugin gtk-xfce-engine xfce4-dict-plugin \
          xfce4-xkb-plugin xfce4-cpugraph-plugin xfce4-diskperf-plugin \
          xfce4-taskmanager xfce4-time-out-plugin xfce4-battery-plugin \
          xfce4-systemload-plugin xfce4-mount-plugin xfce4-terminal \
          xfce4-timer-plugin xfce4-netload-plugin xfce4-weather-plugin \
          xfce4-notifyd xfce4-smartbookmark-plugin imsettings-xfce \
          xfce4-datetime-plugin xfce4-screenshooter im-chooser-xfce \
          xfce4-genmon-plugin xfce4-notes-plugin xfce4-quicklauncher-plugin \
          xfce4-fsguard-plugin xfce4-dict xfce4-places-plugin libxfcegui4 \
          greybird-xfce4-notifyd-theme xfce4-about xfce4-eyes-plugin \
          xfce4-screenshooter-plugin xfce4-netload-plugin xfce4-mixer
    

    Ставим lightdm:
    $ yum install lightdm lightdm-gtk
    

    "Включаем" графику:
    # установить запуск графики "по умолчанию"
    $ systemctl set-default graphical.target
    # запустить сразу (без перезагрузки)
    $ systemctl isolate graphical.target
    

    Определим, какой DM у нас работает:
    $ ls -l /etc/systemd/system/display-manager.service
    

    Если в выводе команды есть gdm.service - у нас GDM сейчас. Сменим на установленный намиlightdm-gtk:
    $ systemctl stop gdm
    $ systemctl disable gdm
    $ systemctl enable lightdm
    $ systemctl start lightdm
    

    Отключенный GDM теперь можно и удалить:
    $ yum remove gdm*
    

    В дальнейшем можно поудалять ещё остатки Gmome и прочего. Например, такие:
    $ yum remove evolution-data-server gjs gnome-keyring-pam gnome-menus \
          gnome-session gnome-settings-daemon gstreamer1-plugins-good mutter \
          telepathy-logger telepathy* gnome-desktop3 libgweather libgdata \
          libwacom gnome-online-accounts libwacom-data
    

    Осталось сделать тестовую перезагрузку.

    б) Enlightenment

    Для основных дистрибутивов Linux публикуются готовые пакеты для установки последних версий этого замечательного DE на сайте самого проекта: Packaging Status.
    Ставится в этом случае крайне просто (предварительно находим, конечно, ссылку на пакет):
    $ dnf install https://kojipkgs.fedoraproject.org//packages/enlightenment/0.21.8/1.fc26/x86_64/enlightenment-devel-0.21.8-1.fc26.x86_64.rpm
    

    Собственно всё.
    Дополнительная информация
    Основной сайт проекта
    Модули для Enlightenment
    Enlightenment - часть первая: Установка (E16 и E17)

    19. Kernel Samepage Merging (KSM)

    Для дедубликации страниц памяти с целью её [памяти] освобождения используется технология Kernel Samepage Merging.
    Включение производится по разному в зависимости от сборки ядра:
    1) в Fredora Linux 12 и новее:
    $ dnf install ksm
    

    2) в CentOS / Scientific Linux 7 и новее:
    $ yum install qemu-kvm
    

    Включение поддержки технологии:
    $ systemctl start ksm
    $ systemctl enable ksm
    $ systemctl start ksmtuned
    $ systemctl enable ksmtuned
    

    Для управления и просмотра статистики используются ключи в каталоге /sys/kernel/mm/ksm/:
    ключ
    Описание
    full_scans количество выполненных операций сканирования
    pages_shared количество используемых общих (объединённых) страниц
    pages_sharing количество потенциально сохранённых страниц
    pages_to_scan количесто страниц которое будет просканировано перед принудительной паузой
    pages_unshared количество "претендентов" на объединение
    pages_volatile количество страниц которые меняются слишком часто
    run ключ запуска KSM
    sleep_millisecs пауза между сканированиями памяти

    Например:
    # включение KSM (аналогично запуску сервиса ksm)
    $ echo 1 > /sys/kernel/mm/ksm/run
    # просмотр кол-ва проведённых операций сканирования
    $ cat /sys/kernel/mm/ksm/full_scans
    

    Таким образом на работу KSM можно влиять через pages_to_scan и sleep_millisecs. Например увеличив pages_to_scan и уменьшив sleep_millisecs можно сделать KSM более агрессивным, но вместе с тем и увеличится нагрузка на процессора.
    Эффективность KSM определяется значениями pages_sharing и pages_unshared: чем больше значение pages_sharing тем эффективнее использование KSM и наоборот.
    Для управления KSM используется файл /etc/ksmtuned.conf.
    Дополнительная информация по KSM: в Fedora Linux, в RHEL.

    20. Анатомии подсистем Linux

    Анатомия сетевого стека в Linux
    Анатомия виртуального коммутатора файловых систем Linux
    Анатомия подсистемы SCSI в Linux
    Анатомия SELinux
    Анатомия управления процессами в Linux
    Анатомия журналируемых файловых систем Linux
    Анатомия распределителя памяти slab в Linux
    Анатомия Linux-архитектур реального времени
    Узнайте о виртуальной машине ядра Linux (KVM)
    Анатомия файловой системы Linux
    Анатомия методов синхронизации Linux
    Анатомия динамических библиотек Linux
    Анатомия ядра Linux
    Виртуальный Linux
    Анатомия файловых систем Linux для флэш-носителей
    Доступ к адресному пространству пользователя из ядра Linux
    Познакомьтесь с Linux – операционной системой и универсальной платформой
    Подробности процесса загрузки Linux
    Виртуализация сетей в Linux
    Эмуляция работы планировщика задач в Linux
    Сетевые файловые системы и Linux
    Эмуляция систем с помощью QEMU
    Планировщик задач Linux
    Увеличение производительности сокета в Linux
    Анатомия загружаемых модулей ядра Linux

    21. Linux From Scratch и Beyond Linux From Scratch

    Linux From Scratch - набор инструкций по созданию с нуля базовой Linux-системы, используя лишь исходные тексты необходимого программного обеспечения:
    - 8.0: читать, скачать (pdf, html, html в bz2 архиве).
    - 8.0 systemd: читать, скачать (pdf, html, html в bz2 архиве).
    Beyond Linux From Scratch - дополнение инструкций LFS информацией о сборке и настройке около 800 программных пакетов, охватывающих различные области применения, от СУБД и серверных систем, до графических оболочек и медиапроигрывателей:
    - 8.0: читать, скачать (html, html в bz2 архиве).[/b][/url]
    - 8.0 systemd: читать, скачать (pdf, html в bz2 архиве).
    Automated Linux From Scratch - фреймворк для автоматизации сборки LFS-системы и управлению пакетами.
    Cross Linux From Scratch - описание кроссплатформенной сборки LFS-системы, поддерживаются архитектуры: x86, x86_64, sparc, mips, PowerPC, alpha, hppa, arm.
    Hardened Linux From Scratch - инструкции по повышению безопасности LFS, применению дополнительных патчей и ограничений.
    LFS Hints - подборка дополнительных советов с описанием альтернативных решений для описанных в LFS и BLFS шагов.
    LFS LiveCD - проект по подготовке LiveCD. На данный момент не развивается.



    размещено: 2011-08-29,
    последнее обновление: 2020-02-06,
    автор: Fomalhaut

    оценить статью:


    Оставьте свой комментарий:
    Ваше имя:   *
    e-mail:  
    жирный
    наклонный
    подчёркнутый
    ссылка
    цвет
    Нынешний год:   *
     


  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 18 чел.
    За последние 30 мин было: 71 человек
    За сегодня было
    9530 показов,
    1308 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0721 секунд
    Из них PHP: 66%; SQL: 34%; Число SQL-запросов: 55 шт.
    Исходный размер: 203516; Сжатая: 37323