«А чего дома сидеть?»

Если ядро Linux опознало ваше устройство-носитель данных, то оно должно предоставить какой-то внешний интерфейс пользователю для работы с устройством. Этим интерфейсом является создание файлов-устройств в каталоге /dev

cat /proc/partitions

df -aHT

fdisk -l

 

Пример:

Устройствам, подключённым к IDE, будут соответствовать файлы-устройства /dev/hda, /dev/hdb и так далее.

Устройствам типа SCSI, а так же близкие им по духу SATA-устройства и USB-флешки, будут иметь файлы-устройства /dev/sda, /dev/sdb и тому подобное.

Если на диске есть разделы, то цифра в имени файла-устройства будет соответствовать номеру раздела.

Пример:

если на USB-флешке есть два раздела, то первый будет называться /dev/sda1, а второй /dev/sda2

Монтирование разделов = объяснение системе, как добраться до ваших данных и сделать их доступными для использования. Системе нужно объяснить три простые вещи:

какая файловая система на разделе;

какой файл-устройство вам нужно;

куда его подключить для просмотра = точка монтирования;

Каталог, в котором вы будете просматривать содержимое ваших разделов, называется точкой монтирования (mount point). Поэтому нужно объяснить системе - командой или через графический интерфейс - что вы хотите смонтировать, куда и что за файловая система на этом разделе.

В переводе на язык UNIX, это звучит так:

mount -t vfat/dev/hda3/ mnt/storage

Если нужно часто монтировать одни и те же разделы, занесите их в /etc/fstab - это общесистемный конфиг, в котором указаны все необходимые разделы для монтирования. Редактировать этот файл может не абы кто, а только root. Так что разживитесь рутовыми полномочиями и редактируйте /etc/fstab

Файл /etc/fstab состоит из колонок, разделители между колонками параметров - табуляция (клавиша TAB). Вот пример содержимого файла /etc/fstab:

# /etc/fstab: static file system information.

#

/dev/hda2 / reiserfsnotail,noatime 0 1

/dev/hdb /mnt/cdromiso9660ro,user,noauto 0 0

/dev/sda1/mnt/flashvfatiocharset=koi8-r,codepage=866,rw,user,auto 0 0

Формат колонок такой:

Монтируемое устройство (файл-устройство, он же раздел, который вы хотите примонтировать).

Точка монтирования (в какую директорию в файловой системе монтировать, точка монтирования).

Тип монтируемой файловой системы.

Опции монтирования(кодировка языка, необходимость монтирования при старте).

Dump (обычно 0).

Pass (обычно 0).

Важно, чтобы вы вставляли Тab после каждой колонки при редактировании /etc/fstab

Ниже приводятся уточнения для каждого случая файловой системы, но идея монтирования разделов в Linux одна и та же.

mount -t vfat/dev/hda1 /home/vasya/tempdir

прикрутить тип FATчто прикрутить куда это прикрутить

Пишем буквально то, чего хотим: от имени суперпользователя, прикрутить логическую структуру с файловой системой FAT, находящуюся в файле /dev/hda1, к каталогу /home/vasya/tempdir.

После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками в Windows. Для этого следует дать команду:

$ umount /mnt/XX

или

$ sudo umount /mnt/XX

где /mnt/XX - точка монтирования. Если ни одно приложение не работает с разделом, то раздел размонтируется отключится и данные на него полностью запишутся. После этого устройство можно безопасно извлечь.

Предварительные действия перед монтированием

Прежде, чем монтировать разделы, нужно создать точки монтирования. Точки монтирования следует создавать в каталогах /mnt или /media. Для этого даём команду:

$ sudo mkdir /mnt/win

или

# mkdir /mnt/win

и даём каталогу права доступа для обычных пользователей:

$ sudo chmod 777 /mnt/win

или

# chmod 777 /mnt/win

Это позволит считывать и записывать данные не только суперпользователю-руту, но и обычному пользователю. Даже если в системе вы - единственный пользователь. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.

Далее приводятся описания нескольких типичных случаев монтирования разделов и файлов.

Как примонтировать раздел с файловой системой FAT в Linux

Самое главное здесь - кодировка. Замечательная корпорация Microsoft изобрела свою собственную кодировку CP866 для MS DOS, CP1251 для Windows и только в последнее время прозрела до UTF8. Благодарим Microsoft за изобретение велосипеда с треугольными колёсами и приступаем к монтированию.

Однократное монтирование FAT

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:

$ sudo mount -t vfat/dev/XX/mnt/YY-o iocharset=utf8,codepage=cp866

или

# mount -t vfat/dev/XX/mnt/YY-o iocharset=utf8,codepage=cp866

Пример: монтирование типичной флешки выглядит так

$ sudo mount -t vfat/dev/sda1/mnt/flash-o iocharset=utf8,codepage=cp866

То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash

Постоянное монтирование FAT 

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYvfatiocharset=utf8,codepage=866,user,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/sda1/mnt/flashvfat iocharset=utf8,codepage=866,user,rw 0 0

То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash После этого раздел FAT в Linux будет доступен. Отмонтирование по команде umount /mnt/flash

Как правильно говорят в комментариях, iocharset совпадает с текущей локалью - например, iocharset=utf8.

Как примонтировать раздел с файловой системой NTFS в Linux

Кодировка в NTFS нормальная, но здесь нас ждёт другая засада. Замечательная корпорация Microsoft изобрела не просто новый велосипед с треугольными колёсами, а ещё и закрыла его, треугольноколесатого велокактуса, описание. Да так, что пришлось очень долго его взламывать и создавать драйвера обратной разработкой. О сложности проблемы даёт понять описание дефрагментации NTFS, что, как говорится, внушает.

Но с этим надо жить, и это всё монтировать. Монтировать и записывать на NTFS в Linux, тем не менее, возможно, благодаря героическим усилиям ребят, создавших драйвер NTFS-3g. Этот драйвер можно установить командой:

aptitude install ntfs-3g

или поискать пакет ntfs-3g в графической оболочке установки программ вашего любимого дистрибутива.

Однократное монтирование NTFS

Временное, однократное монтирование, например, раздела с данными Windows, выглядит так:

$ sudo mount -t ntfs-3g/dev/XX/mnt/YY-o umask=0,nls=utf-8

или

# mount -t ntfs-3g/dev/XX/mnt/YY-o umask=0,nls=utf-8

Пример: монтирование раздела Windows с NTFS разделом выглядит так

$ sudo mount -t ntfs-3g/dev/sda1/mnt/flash-o umask=0,nls=utf-8

То есть монтируем раздел /dev/sda1 типа ntfs-3gв точку монтирования /mnt/flash

Постоянное монтированиеNTFS

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYntfs-3gumask=0,nls=utf-8,user,auto,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/sda1/mnt/windowsntfs-3gumask=0,nls=utf-8,user,auto,rw 0 0

То есть монтируем раздел /dev/sda1 типа ntfs-3gв точку монтирования /mnt/windows После этого раздел NTFS в Linux будет доступен. Отмонтирование по команде umount /mnt/windows

Как примонтировать CD/DVD диск в Linux

Всё проще - скорее всего, это уже сделано в вашем дистрибутиве. Тем не менее, привожу это здесь для примера.

Однократное монтирование CD/DVD

Временное, однократное монтирование, например, DVD-диска с данными в Linux, вглядит так:

$ sudo mount -t iso9660/dev/XX/mnt/YY

или

# mount -t iso9660/dev/XX/mnt/YY

Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660/dev/cdrom/mnt/dvd

То есть монтируем раздел /dev/cdrom типа iso9660в точку монтирования /mnt/dvd

Постоянное монтированиеCD/DVD

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYiso9660umask=0,nls=utf-8,user,ro 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/cdrom/mnt/cdromiso9660umask=0,nls=utf-8,user,ro 0 0

То есть монтируем раздел /dev/cdrom типа iso9660в точку монтирования /mnt/cdrom После этого оптический диск в Linux будет доступен. Отмонтирование по команде umount /mnt/cdrom

Как примонтировать ISO-файл или другой файл в Linux

Вы откуда-то скачали ISO-файл и хотите просмотреть его содержимое. Для этого в Windows есть такой костыль под названием Alcohol. В Linux и вообще в UNIX такие костыли не требуются, так как монтирование ISO-образа ничем для системы не отличается от монтирования CD/DVD-диска. Нужно только передать один параметр -o loop чтобы сообщить системе, что монтировать мы собираемся на петлевое устройство (loopback). Если делать это надо много и часто, можно воспользоваться программой GmountISO, описанной тут.

Для монтирования ISO-образа в командной строке даём команду:

$ sudo mount -t iso9660file.iso/mnt/YY -o loop

или

# mount -t iso9660file.iso/mnt/YY -o loop

Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660file.iso/mnt/dvd -o loop

То есть монтируем файл file.iso типа iso9660в точку монтирования /mnt/dvd на петлевое устройство loop

Точно так же можно монтировать любой CD/DVD образ, а так же файл-образы сжатых\зашифрованных\экзотических файловых систем типа SquashFS. Отмонтирование по команде umount /mnt/dvd

Как примонтировать раздел с файловой системой EXT2/EXT3/ReiserFS/XFS/JFS... в Linux

Монтирование нормальных файловых систем проблем не создаёт. Приведу пример только с ext3, остальные файловые системы в Linux монтируются точно так же, только вместо ext3 подставьте буквально: ext2, reiserfs, xfs, jfs в зависимости от вашей файловой системы.

Однократное монтирование

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:

$ sudo mount -t ext3/dev/XX/mnt/YY

или

# mount -t ext3/dev/XX/mnt/YY

Пример: монтирование раздела с данными выглядит так

$ sudo mount -t ext3/dev/sda1/mnt/data

То есть монтируем раздел /dev/sda1 типа ext3в точку монтирования /mnt/data

Постоянное монтирование 

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYext3user,auto,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/sda1/mnt/dataext3user,auto,rw 0 0

То есть монтируем раздел /dev/sda1 типа ext3в точку монтирования /mnt/data После этого раздел EXT3 в Linux будет доступен. Отмонтирование по команде umount /mnt/data

Что делать, если устройство в Linux не хочет размонтироваться!?

Вы пытаетесь размонтировать раздел с данными (флешка, CD/DVD диск...) и получаете сообщение с ошибкой - устройство занято. Например, при выполнении команды umount /mnt/windows получаете сообщение вида:

umount /mnt/windows

umount: /mnt/windows: device is busy

umount: /mnt/windows: device is busy

Ну и что делать, если раздел в Linux не размонтируется!? Очень просто - посмотреть, какой процесс держит раздел или файл и не даёт отмонтировать его. Дальше либо закрыть это приложение, либо придушить его с помощью команды kill. Даём команду:

lsof | grep /mnt/windows

Вертикальная черта означает передачу вывода команды lsof программе grep и фильтрации по слову /mnt/windows

После этого вы получите ответ вида:

$ lsof | grep /mnt/windows

lsof: WARNING: can't stat() reiserfs file system /dev/.static/dev

Output information may be incomplete.

mc 14134 beast cwd DIR 8,1 4096 1 /mnt/windows

Стало быть, ваш раздел держит MC (Midnight Commander), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.

 

Пошаговая становка и настройка Puppet на двух Ubuntu хостах.

MASTER

cd ~; wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
sudo dpkg -i puppetlabs-release-trusty.deb
sudo apt-get update
sudo apt-get install puppetmaster-passenger
sudo service apache2 stop
sed -e '/templatedir/ s/^#*/#/' -i.back /etc/puppet/puppet.conf
puppet help | tail -n 1
sudo nano /etc/apt/preferences.d/00-puppet.pref

	# /etc/apt/preferences.d/00-puppet.pref
	Package: puppet puppet-common puppetmaster-passenger
	Pin: version 3.6*
	Pin-Priority: 501

sudo rm -rf /var/lib/puppet/ssl

sudo nano /etc/puppet/puppet.conf

	[main]
	logdir=/var/log/puppet
	vardir=/var/lib/puppet
	ssldir=/var/lib/puppet/ssl
	rundir=/var/run/puppet
	factpath=$vardir/lib/facter
	#templatedir=$confdir/templates
	certname = puppet
	# server.us-west-1.compute.amazonaws.com - FQDN name
dns_alt_names = puppet,server.us-west-1.compute.amazonaws.com
[master] # These are needed when the puppetmaster is run by passenger # and can safely be removed if webrick is used. ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY sudo puppet master --verbose --no-daemonize sudo puppet cert list -all sudo cat /etc/puppet/puppet.conf sudo touch /etc/puppet/manifests/site.pp sudo service apache2 start AGENT cd ~; wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb sudo dpkg -i puppetlabs-release-trusty.deb sudo apt-get update sudo apt-get install puppet sudo nano /etc/default/puppet START=yes sudo nano /etc/apt/preferences.d/00-puppet.pref # /etc/apt/preferences.d/00-puppet.pref Package: puppet puppet-common Pin: version 3.6* Pin-Priority: 501 sudo nano /etc/puppet/puppet.conf [agent] server = server.us-west-1.compute.amazonaws.com sudo service puppet start MASTER sudo puppet cert list #When the puppetmaster server certificates are generated they are named puppet.pem #in stead of puppetmaster.domain.tld.pem because the certname = puppet in #/etc/puppet/puppet.conf. nano /etc/apache2/sites-enabled/puppetmaster.conf sudo puppet cert sign client.us-west-1.compute.internal or sudo puppet cert sign --all facter AGENT sudo puppet agent --test MASTER sudo puppet module install puppetlabs-apache sudo nano /etc/puppet/manifests/site.pp file {'/tmp/example-ip': # resource type file and filename ensure => present, # make sure it exists mode => 0644, # file permissions content => "Here is my Public IP Address: ${ipaddress_eth0}.\n", # note the ipaddress_eth0 fact } node 'client.us-west-1.compute.internal' { # applies to client.us-west-1.compute.internal node class { 'apache': } # use apache module apache::vhost { 'example.com': # define vhost resource port => '80', docroot => '/var/www/html' } } node default {} # applies to nodes that aren't explicitly defined AGENT sudo puppet agent --test

На одном из интервью была поставленна задача построить тестовую лабораторию сосотоящую из Ubuntu Desktop, Ubuntu Server Router и Ubuntu WEB Server с использованием виртуальных машин в VirtualBox на одном физическом хосте. 

Router имел три интерфейса (первый NAT на хост) и разделял две виртуальные подсети. В первую сеть на нем должен работать DNS server для обслуживания зоны "testzone.home", NAT и DHCP сервер. 

Desktop имел два интерфейса (первый NAT на хост) получает IP динамически и получает доступ к "www.testzone.home" на WEB server. Вторым интерфейсоам Router смотрит в подсеть 2 и на WEB serevr. 

На WEB server имеющем два интерфейса (первый NAT на хост) установлен NGINX, MySQL, PHP и Wordpress "www.testzone.home". 

К WEB server подключен внешний диск который монтируется при старте хоста. Каждые три часа база данных Wordpress, системные файлы /etc/, /home/ и папки с файлами Wordpress архивируется в примонтированный раздел. Архивы хранятся месяц после чего удаляются. 

network load balancing HA ProxyСтоит задача получить балансировщик сетевой нагрузки для WEB серверов с поддержкой SSL и в тоже время поддержкой Сookie (SSL Network Load Balancer). Причем сервера (два или больше) стоящие за NLB слушаю только 443 порт. Все реализованно на Linux машине и opensours продуктах Pound и HAProxy. Такой бесплатный NLB сравним с знаменитым балансеровщиком F5 или Amazon NLB.

Pacific Aikido FederationПрошло больше года с тех пор как я возобновил занятия Айкидо в додзе в Mountain View после переезда в Калифорнию  Я хочу поделиться информацией о додзе, о причинах его выбора, о правилах и тренерах.