<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LPI Study Guide</title>
	<atom:link href="http://lpi.bezha.od.ua/feed/" rel="self" type="application/rss+xml" />
	<link>http://lpi.bezha.od.ua</link>
	<description>ХХХ: говорят, что администратор оракл, получивший все сертификаты и сдавший все экзамены, может sql-запросом убить человека, зная только его IP #bash</description>
	<lastBuildDate>Sun, 26 Feb 2012 18:34:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Process text streams using filters (Weight 3)</title>
		<link>http://lpi.bezha.od.ua/process-text-streams-using-filters/</link>
		<comments>http://lpi.bezha.od.ua/process-text-streams-using-filters/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 20:26:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[cat]]></category>
		<category><![CDATA[cut]]></category>
		<category><![CDATA[expand]]></category>
		<category><![CDATA[fmt]]></category>
		<category><![CDATA[head]]></category>
		<category><![CDATA[join]]></category>
		<category><![CDATA[nl]]></category>
		<category><![CDATA[od]]></category>
		<category><![CDATA[paste]]></category>
		<category><![CDATA[pr]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[split]]></category>
		<category><![CDATA[tac]]></category>
		<category><![CDATA[tail]]></category>
		<category><![CDATA[tr]]></category>
		<category><![CDATA[unexpand]]></category>
		<category><![CDATA[uniq]]></category>
		<category><![CDATA[wc]]></category>

		<guid isPermaLink="false">http://lpi.bezha.od.ua/?p=1598</guid>
		<description><![CDATA[Candidates should should be able to apply filters to text streams. Send text files and output streams through text utility filters to modify the output using standard UNIX commands found in the GNU textutils package. The following is a partial &#8230; <a href="http://lpi.bezha.od.ua/process-text-streams-using-filters/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>Candidates should should be able to apply filters to text streams.
Send text files and output streams through text utility filters to modify the output using
standard UNIX commands found in the GNU textutils package.</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre><a href="#M-1">cat</a>
<a href="#M-2">tac</a>
<a href="#M-14">cut</a>
<a href="#M-8">expand</a>
<a href="#M-9">unexpand</a>
<a href="#M-13">fmt</a>
<a href="#M-6">head</a>
<a href="#M-3">od</a>
<a href="#M-16">join</a>
<a href="#M-12">nl</a>
<a href="#M-15">paste</a>
<a href="#M-11">pr</a>
<a href="#M-17">sort</a>
<a href="#M-4">split</a>
<a href="#M-7">tail</a>
<a href="#M-10">tr</a>
<a href="#M-18">uniq</a>
<a href="#M-5">wc</a></pre>
<p><a href="#M-19">Вопросы по LPI (приблизительные)</a><br />
<a href="#M-20">Ответы</a></p>
<p>Фильтрация текста &#8212; это процесс преобразований над входным потоком текста до того как он будет выдан в выходной поток. Хотя как входной, так и выходной поток могут поступать из файла, в системах Linux и UNIX фильтрация преимущественно осуществляется через конвейер команд, когда вывод одной команды связывается или перенаправляется на ввод следующей команды.</p>
<p>Интерпретатор оперирует с тремя стандартными потоками ввода/вывода:</p>
<p>stdin это стандартный поток ввода, через который поступает ввод командам<br />
stdout это стандратный выходной поток, через который команды выводят свой выход<br />
stderr это стандартный поток ошибок, через который выводятся ошибки в командах</p>
<p><strong>Конвейер с помощью |</strong></p>
<p>Команды обработки текста (фильтры) могут принимать входной поток, как из стандартного ввода, так и из файла. Чтобы использовать выход команды command1, как входной фильтр command2 вы должны соединить команды с помощью операции конвейерезации (|)</p>
<pre># command1 | command2</pre>
<p>Вы можете также использовать | для перенаправления вывода command2 в этом конвейере на вход другой команде, command3. Конструируя длинные конвейеры из команд, каждая из которых выполняет свою задачу, можно понять философию выполнения задач в Linux и UNIX.</p>
<pre># command1 | command2 | command3</pre>
<p>Также иногда вы будете видеть знак дефиса (-) вместо имени файла в качестве аргумента команды, в том значении, что ввод будет поступать из stdin, а не из файла.</p>
<p><strong>Перенаправление вывода с помощью &gt;</strong></p>
<p># echo -e &#8220;1 103.1 Work on the command line\n2 103.2 Process text streams using filters\n3 103.3 Perform basic file and directory management&#8221; &gt; LPI1</p>
<p>Просмотреть созданный файл можно командой cat. Команда cat принимает ввод из stdin, если вы не определите имя файла<br />
<a name="M-1"></a><a href="http://ru.wikipedia.org/wiki/Cat"><strong>cat</strong></a> (сокращение от catenate &#8211; eng. сцеплять, связывать)</p>
<pre># cat LPI1
1 103.1 Work on the command line
2 103.2 Process text streams using filters
3 103.3 Perform basic file and directory management</pre>
<p>Создание текстового файла с помощью cat (Используйте комбинацию Ctrl-d чтобы послать сигнал конца файла)</p>
<pre># cat &gt; LPI2
103.4 Use streams, pipes, and redirects
103.5 Create, monitor, and kill processes
103.6 Modify process execution priorities</pre>
<p>Соединим (Concatenating) два файла в один</p>
<pre># cat LPI*
# cat LPI1 LPI2
1 103.1 Work on the command line
2 103.2 Process text streams using filters
3 103.3 Perform basic file and directory management
103.4 Use streams, pipes, and redirects
103.5 Create, monitor, and kill processes
103.6 Modify process execution priorities</pre>
<p>Показывать конец строки опция -E, будет отображаться знак $ в конце строки</p>
<pre># cat -E LPI1
1 103.1 Work on the command line$
2 103.2 Process text streams using filters$
3 103.3 Perform basic file and directory management$</pre>
<p>Показать номера строк опция -n</p>
<pre># cat -n LPI2
1 103.4 Use streams, pipes, and redirects
2 103.5 Create, monitor, and kill processes
3 103.6 Modify process execution priorities</pre>
<p><a name="M-2"></a><a href="http://ru.wikipedia.org/wiki/Tac"><strong>tac</strong></a> &#8212; Unix-утилита, выводящая строки указанных файлов в обратном порядке</p>
<pre># tac LPI1
3 103.3 Perform basic file and directory management
2 103.2 Process text streams using filters
1 103.1 Work on the command line</pre>
<p><a name="M-3"></a><a href="http://ru.wikipedia.org/wiki/Od"><strong>od</strong></a> &#8212; (OctalDump) Unix-утилита, для вывода дампа файла в разных форматах. С разными параметрами, с помощью od можно увидеть содержимое файла в шестнадцатеричном, восьмеричном, десятичном и пр.</p>
<p>od [- опции] [-A в каком формате будет колонка позиций ] [-j начать с какого байта ] [-N длина ] [-t формат вывода ] [файл]</p>
<pre>[-A в каком формате будет колонка позиций ]
o восьмеричное - по умолчанию
d десятичное
x шестнадцатеричное
n смещения не отображаются</pre>
<pre># od LPI1
0000000 020061 030061 027063 020061 067527 065562 067440 020156
0000020 064164 020145 067543 066555 067141 020144 064554 062556
0000040 031012 030440 031460 031056 050040 067562 062543 071563
0000060 072040 074145 020164 072163 062562 066541 020163 071565
0000100 067151 020147 064546 072154 071145 005163 020063 030061
0000120 027063 020063 062520 063162 071157 020155 060542 064563
0000140 020143 064546 062554 060440 062156 062040 071151 061545
0000160 067564 074562 066440 067141 063541 066545 067145 005164
0000200</pre>
<p><a name="M-4"></a><a href="http://ru.wikipedia.org/wiki/Split"><strong>split</strong></a> &#8212; (eng. дробление, расщеплять) Unix-утилита, копирующая файл и разбивающая его на отдельные файлы заданной длины.</p>
<p>Опции команды split<br />
-a, &#8211;suffix-length=Н использовать суффиксы длины Н (по умолчанию 2)<br />
-b, &#8211;bytes=ЧИСЛО записывать в каждый выходной файл заданное ЧИСЛО байт<br />
-C, &#8211;line-bytes=ЧИСЛО записывать не более заданного ЧИСЛА байт из строки<br />
-d, &#8211;numeric-suffixes использовать числовые, а не алфавитные суффиксы (по умолчанию алфавитные суффиксы)<br />
-l, &#8211;lines=ЧИСЛО записывать в каждый выходной файл заданное ЧИСЛО строк<br />
&#8211;verbose печатать сообщение в стандартный поток ошибок перед открытием очередного выходного файла<br />
&#8211;help показать эту справку и выйти<br />
&#8211;version показать информацию о версии и выйти</p>
<p>Разделим файл LPI3 построчно в файл LPI4</p>
<pre># split -l 1 LPI3 LPI4
# ls LPI4*
LPI4aa  LPI4ab  LPI4ac  LPI4ad  LPI4ae  LPI4af</pre>
<p>Разделим большой архив на мелкие части и соберем обратно</p>
<pre># du -sh music.tar.gz
27M	music.tar.gz
# split -d --suffix-length=4 --bytes=10M music.tar.gz music
# du -sh music0*
10M	music0000
10M	music0001
6,6M	music0002
# cat music0* &gt; music2.tar.gz</pre>
<p><a name="M-5"></a><a href="http://ru.wikipedia.org/wiki/Wc"><strong>wc</strong></a> (word count — eng. количество слов) — Unix-утилита, выводящая число переводов строк, слов и байт для каждого указанного файла и итоговую строку, если было задано несколько файлов. Если входной файл не задан, или равен ‘-‘, то данные считываются со стандартного ввода.</p>
<p>Опции команды wc<br />
-c, &#8211;bytes напечатать число байт<br />
-m, &#8211;chars напечатать число символов<br />
-l, &#8211;lines напечатать число переводов строк<br />
-L, &#8211;max-line-length напечатать длину наибольшей строки<br />
-w, &#8211;words напечатать число слов<br />
&#8211;help показать эту справку и выйти<br />
&#8211;version показать информацию о версии и выйти</p>
<pre># wc LPI3
6  39 252 LPI3</pre>
<pre># wc LPI1 LPI2 LPI3
3  22 128 LPI1
3  17 124 LPI2
6  39 252 LPI3
12  78 504 итого</pre>
<p>Посчитать количество срок</p>
<pre># cat /var/log/messages | wc -l
2485</pre>
<p><a name="M-6"></a><a name="M-20" href="https://www.ibm.com/developerworks/ru/edu/l-lpic1103/section3.html">Текстовые потоки и фильтры</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/process-text-streams-using-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Control mounting and unmounting of filesystems (weight 3)</title>
		<link>http://lpi.bezha.od.ua/control-mounting-and-unmounting-of-filesystems/</link>
		<comments>http://lpi.bezha.od.ua/control-mounting-and-unmounting-of-filesystems/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 17:17:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[/etc/fstab]]></category>
		<category><![CDATA[/etc/mtab]]></category>
		<category><![CDATA[/media]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[umount]]></category>

		<guid isPermaLink="false">http://lpi.bezha.od.ua/?p=1452</guid>
		<description><![CDATA[Candidates should be able to configure the mounting of a filesystem. Manually mount and unmount filesystems. Configure filesystem mounting on bootup. Configure user mountable removeable filesystems. The following is a partial list of the used files, terms and utilities: /etc/fstab &#8230; <a href="http://lpi.bezha.od.ua/control-mounting-and-unmounting-of-filesystems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>Candidates should be able to configure the mounting of a filesystem.
Manually mount and unmount filesystems.
Configure filesystem mounting on bootup.
Configure user mountable removeable filesystems.</pre>
<p>The following is a partial list of the used files, terms and utilities:</p>
<pre>/etc/fstab
/media
mount
umount</pre>
<p>Содержание:<br />
<a href="#P-1"><strong>1 </strong>Монтирование файловых систем</a><br />
<a href="#P-2"><strong>2 </strong>Размонтирование файловых систем</a><br />
<a href="#P-3"><strong>3 </strong>Использование fstab</a><br />
<a href="#P-4"><strong>4 </strong>Вопросы по LPI (приблизительные)</a><br />
<a href="#P-5"><strong>5 </strong>Ответы</a></p>
<p><a name="P-1"></a><strong>Монтирование файловых систем</strong><br />
<a href="http://ru.wikipedia.org/wiki/Mount">mount</a> утилита командной строки в UNIX-подобных системах. Применяется для монтирования файловых систем</p>
<p>Синтаксис команды mount</p>
<pre>mount [-alrsvw] [-t fstype] [-o options] [device] [mountpoint]</pre>
<p>Примонтируем раздел /dev/sdb1 в папку /mnt</p>
<pre># mount /dev/sdb1 /mnt/
# df -Th | grep sdb
/dev/sdb1     ext4     76M  5,6M   67M   8% /mnt</pre>
<p>Точка монтирования должна существовать прежде, чем в нее что-либо будет смонтировано. В результате монтирования файлы и подкаталоги монтируемой файловой системы становятся файлами и подкаталогами точки монтирования. Если каталог точки монтирования уже содержал файлы и подкаталоги, они становятся невидимыми до тех пор, пока файловая система не будет демонтирована.</p>
<p>Опция -a указывает команде mount примонтировать все файловые системы расположенные в файле <strong>/etc/fstab</strong></p>
<pre># mount -a</pre>
<p>Монтирование с помощью labels и UUIDs</p>
<pre># blkid /dev/sdb1
/dev/sdb1: UUID="7e2db0b0-9542-4b78-9539-4460b2b848d2" TYPE="ext4" LABEL="disk2"
# mount LABEL="disk2" /mnt/
# mount UUID="7e2db0b0-9542-4b78-9539-4460b2b848d2" /mnt</pre>
<p>Обычно команда mount автоматически определяет тип файловой системы. Но иногда может потребоваться явное задание типа файловой системы, для чего используется опция -t</p>
<pre># mount -t ext3 /dev/sdb1 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде
# mount -t ext4 /dev/sdb1 /mnt/</pre>
<p>Типы файловых систем</p>
<pre>ext2 (for ext2fs)
ext3 (for ext3fs)
ext4 (for ext4fs)
reiserfs (for ReiserFS)
jfs (for JFS)
xfs (for XFS)
vfat (for FAT with VFAT long filenames)
msdos (for FAT using only short DOS filenames)
iso9660 (for CD-ROM filesystems)
udf (for DVD and some CD-ROM filesystems)
nfs (for NFS network mounts)
smbfs (for SMB/CIFS network shares)</pre>
<p>Чтобы посмотреть какие файловые системы смонтированы в данный момент, необходимо запустить mount без параметров</p>
<pre># mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro,user_xattr,commit=0)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
192.168.0.111:/share on /home/bezha/popcorn type nfs (rw,addr=192.168.0.111)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
nfsd on /proc/fs/nfsd type nfsd (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/dev/sdb1 on /mnt type ext4 (rw)</pre>
<p>Вывод с метками</p>
<pre># mount -l
/dev/sr0 on /media/Music 17.08.2010 type iso9660 (ro) [Music 17.08.2010]
/dev/sdb1 on /mnt type ext4 (rw) [disk2]</pre>
<p>Аналогичный результат будет если запустить следующие команды</p>
<pre># cat /proc/mounts
# cat /etc/mtab</pre>
<p>Опции команды mount</p>
<pre># mount -V показывает версию программы
mount from util-linux-ng 2.17.2 (with libblkid and selinux support)
# mount -h показывает help
# mount -v /dev/sdb1 /mnt/ выводить дополнительную информацию
mount: вы не указали тип файловой системы для /dev/sdb1
       я попробую тип ext4
/dev/sdb1 on /mnt type ext4 (rw)
# mount -n монтировать файловую систему без добавления ее в /etc/mtab
# mount -r монтировать файловую систему в режиме чтения
# mount -w монтировать файловую систему в режиме записи</pre>
<p>Перемонтировать файловую систему в режим чтения</p>
<pre># mount -o remount,ro /mnt/
# mount | grep mnt
/dev/sdb1 on /mnt type ext4 (ro)</pre>
<p>Перемонтировать файловую систему в режим записи</p>
<pre># mount -o remount,rw /mnt/
# mount | grep mnt
/dev/sdb1 on /mnt type ext4 (rw)</pre>
<p>- указывайте опции через запятую<br />
- при перемонтировании уже смонтированной файловой системы достаточно определить либо точку монтирования, либо название устройства. Указывать и то и другое не обязательно<br />
- нельзя перемонтировать файловую систему, созданную только для чтения, в режим чтения/записи. Неизменяемые носители, например, на CD-ROM, автоматически монтируются только для чтения<br />
- Команды перемонтирования не будут выполнены, если какой-либо процесс имеет открытые файлы или каталоги в перемонтируемой файловой системе.</p>
<p><a name="P-2"></a><strong>Размонтирование файловых систем</strong><br />
<a href="http://ru.wikipedia.org/wiki/Umount">umount</a>— утилита командной строки в UNIX-подобных системах. Применяется для размонтирования файловых систем, предварительно смонтированных посредством вызова утилиты mount.</p>
<p>Все смонтированные файловые системы обычно автоматически размонтируются системой при перезагрузке или выключении. Также можно размонтировать файловую систему вручную. В действительности это необходимо делать всякий раз, когда вы удаляете записываемый съемный носитель &#8211; дискету, USB-диск или флэш-накопитель.</p>
<p>Синтаксис команды umount</p>
<pre>umount [-afnrv] [-t fstype] [device | mountpoint]</pre>
<p>Размонтируем раздел /mnt</p>
<pre># umount -v /mnt
# umount -v /dev/sdb1</pre>
<p>Опция -a указывает команде umount размонтировать файловые системы расположенные в файле <strong>/etc/mtab</strong></p>
<p>Прежде чем размонтировать файловую систему, следует убедиться в отсутствии работающих процессов, которые имеют открытые файлы в этой файловой системе</p>
<pre># # umount -v /mnt
umount: /mnt: device is busy.
(In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))</pre>
<p>Смотрим какие процессы мешают размонтировать файловую систему с помощью команд lsof и fuser</p>
<pre># lsof /mnt/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash     6661 root  cwd    DIR   8,17     1024    2 /mnt
lsof    12218 root  cwd    DIR   8,17     1024    2 /mnt
lsof    12219 root  cwd    DIR   8,17     1024    2 /mnt
# fuser -v /mnt/
                     ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/mnt/:               root     kernel mount /mnt
                        root       6661 ..c.. bash</pre>
<p>После закрытия процесса с pid 6661</p>
<pre># umount -v /mnt
/dev/sdb1 размонтирован</pre>
<p>Опции команды umount</p>
<pre># umount -V Показать версию программы
umount (util-linux-ng 2.17.2)
# umount -h Показать help
# umount -v Показывать дополнительную информацию
# umount -n Размонтировать файловую систему без записи в файл /etc/mtab
# umount -f Принудительное размонтирование файловой системы
# umount -r Если не получиться размонтировать файловую систему, примонтировать ее в режиме чтения</pre>
<p>Для того чтобы обычный пользователь мог размонтировать флешки и CD/DVD они монтируются с uid и gid пользователя.<br />
Благодаря этому обычный пользователь сможет размонтировать файловую систему не обладая паролем суперпользователя.<br />
# mount | grep sr0<br />
/dev/sr0 on /media/Music 17.08.2010 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500)<br />
# id bezha<br />
uid=1000(bezha) gid=1000(bezha) группы=1000(bezha),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)</p>
<p><a name="P-3"></a><strong>Использование fstab</strong></p>
<p>Пример файла /etc/fstab</p>
<pre># vi /etc/fstab
# /etc/fstab: static file system information.
proc            /proc           proc    nodev,noexec,nosuid 0       0
UUID=d7f75420-0122-4fd5-b1d7-1df574591e20 none            swap    sw              0       0
192.168.0.111:/share /home/bezha/popcorn nfs defaults 0 0
UUID=78432857-fdf6-4ea1-8139-dc3ec8298b3f / ext4 errors=remount-ro 0 1</pre>
<p>Может быть на примере /dev/sdb1<br />
# blkid /dev/sdb1<br />
/dev/sdb1: UUID=&#8221;7e2db0b0-9542-4b78-9539-4460b2b848d2&#8243; TYPE=&#8221;ext4&#8243; LABEL=&#8221;disk2&#8243;<br />
имя устройства &#8211; /dev/sdb1<br />
UUID устройства &#8211; 7e2db0b0-9542-4b78-9539-4460b2b848d2<br />
LABEL устройства &#8211; 7e2db0b0-9542-4b78-9539-4460b2b848d2<br />
Это точка монтирования.<br />
Для файла подкачки это поле имеет значение none.</p>
<p>Определяет тип файловой системы. CD/DVD-диски часто имеют разные файловые системы &#8211; ISO9660 или UDF &#8211; поэтому вы можете перечислить различные возможности в виде списка, разделенного запятыми. Если вы хотите, чтобы mount автоматически определила тип, используйте auto.</p>
<p>Определяет параметры монтирования. Для монтирования со значениями по умолчанию используйте defaults.<br />
- rw и ro указывают монтирование файловой системы в режиме чтения/записи или только для чтения.<br />
- noauto указывает, что файловая система не должна автоматически монтироваться при загрузке или при выдаче команды mount -a.<br />
- user определяет, что пользователь, не имеющий прав root, может монтировать или демонтировать данную файловую систему. Это особенно полезно для съемных носителей.<br />
- exec или noexec определяют, позволять ли исполнение файлов из данной файловой системы.<br />
- noatime отключает запись атрибута времени доступа к файлу.</p>
<p>Определяет, будет ли команда dump включать данную файловую систему ext2 или ext3 в резервные копии. Значение 0 означает, что dump игнорирует данную файловую систему.</p>
<p>Ненулевые значения pass определяют порядок проверки файловых систем во время загрузки, как описано в теме <a href="http://lpi.bezha.od.ua/maintain-the-integrity-of-filesystems/">Maintain the integrity of filesystems</a></p>
<p>Для монтирования файловых систем, перечисленных в /ect/fstab, достаточно задать либо имя устройства, либо точку монтирования. Оба параметра одновременно задавать не нужно.</p>
<p><strong>Файл подкачки</strong><br />
Файл подкачки не имеет точки монтирования. В процессе загрузки система обычно активизирует пространство подкачки, указанное в /etc/fstab, если не указана опция noauto.<br />
Просмотр файла подкачки</p>
<pre># swapon -s
Filename				Type		Size	Used	Priority
/dev/sda5                               partition	3227644	0	-1
# cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/sda5                               partition	3227644	0	-1</pre>
<p><a name="P-4"></a>Вопросы по LPI (приблизительные)</p>
<pre>
1) What mount point should you associate with swap partitions?
A. /
B. /swap
C. /boot
D. None
</pre>
<pre>
2) To access files on a USB pen drive, you type mount /dev/sdc1 /media/pen as root.
Which types of filesystems will this command mount?
A. Ext2fs
B. FAT
C. HFS
D. All of the above
</pre>
<pre>
3) Which of the following /etc/fstab entries will mount /dev/sdb2 as the /home directory
at boot time?
A. /dev/sdb2 reiserfs /home defaults 0 0
B. /dev/sdb2 /home reiserfs defaults 0 0
C. /home reiserfs /dev/sdb2 noauto 0 0
D. /home /dev/sdb2 reiserfs noauto 0 0
</pre>
<pre>
4) What filesystem options might you specify in /etc/fstab to make a removable disk (USB
pen drive, Zip disk, floppy disk, and so on) user-mountable? (Select all that apply.)
A. user
B. users
C. owner
D. owners
</pre>
<pre>
5)  What is the minimum safe procedure for removing a USB pen drive, mounted from
/dev/sdb1 at /media/pen, from a Linux computer?
A. Type umount /media/pen, wait for the command to return and disk activity lights to stop,
and then unplug the drive.
B. Unplug the drive, and then type umount /media/pen to ensure that Linux registers
the drive’s removal from the system.
C. Unplug the drive, and then type sync /dev/sdb1 to flush the caches
to ensure problems don’t develop.
D. Type pendrive-remove, and then quickly remove the disk before its activity light stops blinking.
</pre>
<pre>
6) Which of the following files contains information on currently mounted file systems?
A. /etc/mtab
B. /etc/fstab
C. /proc
D. /dev
</pre>
<pre>
7) Which command is used to make a file system available to the system?
A. fsck
B. mount
C. fdisk
D. mkfs
</pre>
<pre>
8) User mountable file systems are specified in the ____________ file.
</pre>
<pre>
9) Before a file system can be examined using fsck it must first be ____________.
</pre>
<p><a name="P-5"></a>Ответы</p>
<pre>
1) The correct answer is <strong>D</strong>.
Swap partitions aren’t mounted in the way filesystems are, so they have no associated mount points.
</pre>
<pre>
2)  The correct answer is <strong>D</strong>.  When typed without a filesystem type specification,
mount attempts to auto-detect the filesystem type. If the media contains any of the specified
filesystems, it should be detected and the disk mounted.
</pre>
<pre>
3) The correct answer is <strong>B</strong>.
The /etc/fstab file consists of lines that contain the device identifier, the mount point,
the filesystem type code, filesystem mount options, the dump flag, and the filesystem check
frequency, in that order. Option B provides this information in the correct order and so
will work.
</pre>
<pre>
4) The correct answer is <strong>A</strong>, <strong>B</strong>, <strong>C</strong>
The user, users, and owner options in /etc/fstab all enable ordinary users to mount a filesystem,
but with slightly different implications:
user enables anybody to mount a filesystem, and only that user may unmount it;
users enables anybody to mount a filesystem, and anybody may unmount it;
owner enables only the owner of the mount point to mount or unmount a filesystem.
</pre>
<pre>
5) The correct answer is <strong>A</strong>.
Option A correctly describes the safe procedure for removing a removable medium that
lacks a locking mechanism from a Linux computer. (Instead of typing umount /media/
pen, you could type umount /dev/sdb1; in this context, the two commands are equivalent.)
</pre>
<pre>
6) The correct answer is <strong>A</strong>. The /etc/mtab file contains the currently mounted file systems.
</pre>
<pre>
7) The correct answer is <strong>B</strong>. The mount utility allows a file system to be accessed by the system.
</pre>
<pre>
8) <strong>/etc/fstab</strong>. The /etc/fstab file specifies which file systems are mountable by users.
</pre>
<pre>
9) <strong>unmounted</strong>. A file system must be unmounted before it can be inspected with fsck.
</pre>
<p>Читать<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-104-3/index.html">Control mounting and unmounting of filesystems</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1104/section4.html">Монтирование и размонтирование файловых систем</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/control-mounting-and-unmounting-of-filesystems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modify process execution priorities (Weight 2)</title>
		<link>http://lpi.bezha.od.ua/modify-process-execution-priorities/</link>
		<comments>http://lpi.bezha.od.ua/modify-process-execution-priorities/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 20:51:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[nice]]></category>
		<category><![CDATA[renice]]></category>

		<guid isPermaLink="false">http://lpi.bezha.od.ua/?p=1506</guid>
		<description><![CDATA[Candidates should should be able to manage process execution priorities. Know the default priority of a job that is created. Run a program with higher or lower priority than the default. Change the priority of a running process. The following &#8230; <a href="http://lpi.bezha.od.ua/modify-process-execution-priorities/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>Candidates should should be able to manage process execution priorities.
Know the default priority of a job that is created.
Run a program with higher or lower priority than the default.
Change the priority of a running process.</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>nice
renice</pre>
<p><strong>Отображение и установка приоритетов</strong></p>
<p>Системы Linux и UNIX используют систему приоритетов из 40 значений</p>
<pre>-20 наивысший приоритет
19 низший приоритет</pre>
<p><a href="http://ru.wikipedia.org/wiki/Nice">nice</a> UNIX-утилита, запускающая программу с измененным приоритетом для планировщика задач.<br />
Процессы обычных пользователей обычно имеют нулевой приоритет. Команда nice отобразит приоритет по умолчанию</p>
<pre># nice
0</pre>
<p>Команда ps также может отображать приоритет (nice, или NI, уровень) с помощью опции -l</p>
<pre>ps -l
F S   UID PID  PPID  C PRI  <strong>NI</strong> ADDR SZ WCHAN  TTY    TIME CMD
4 S    0 16866 13488  0  80 <strong>0</strong> -  2140 wait  pts/0  00:00:00 su
0 S    0 16883 16866  0  80 <strong>0</strong> -  1969 wait  pts/0  00:00:00 bash
4 R    0 17668 16883  0  80 <strong>0</strong> -  1380 -     pts/0  00:00:00 ps
</pre>
<p>Изменить приоритет при запуске можно 4 равнозначными способами</p>
<pre>
$ nice -10 script.sh
$ nice -n 10 script.sh
$ nice --adjustment=10 script.sh
$ nice script.sh
</pre>
<pre>
!По умолчанию если не указан приоритет nice устанавливает 10
$ nice ./sh
$ ps -al
F S   UID   PID  PPID  C PRI  <strong>NI</strong> ADDR SZ WCHAN  TTY   TIME CMD
0 S  1000 30976 30752  0  90  <strong>10</strong> -   474 wait   pts/0    00:00:00 sh
</pre>
<p>Процесс с наименьшим значением приоритета работает чаще всех, увеличение значения приоритета означает для процесса быть более дружелюбным по отношению к другим процессам. Обычно требуются права суперпользователя (root), чтобы применять отрицательные значения. Другими словами, обычные пользователи могут только сделать свои процессы более дружелюбными.</p>
<p><a href="http://ru.wikipedia.org/wiki/Renice">renice</a> UNIX-утилита, позволяющая изменить приоритет запущенных задач.</p>
<pre>
!Привилегированный пользователь root может указать отрицательное смещение.
</pre>
<p>Опции команды renice</p>
<pre>
-g Specifies the priority for processes executed by members of the specified group.
-u Specifies the priority level for processes executed by the specified user.
-p Specifies the priority level for the specified process.
</pre>
<p>Изменим приоритет работающего процесса</p>
<pre>
$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000 20471 20466  0  80   0 -  1969 wait   pts/0    00:00:00 bash
$ renice 10 20471
20471: старый приоритет 0, новый приоритет 10
$ ps -l
F S   UID   PID  PPID  C PRI  <strong>NI</strong> ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000 20471 20466  0  90  <strong>10</strong> -  1969 wait   pts/0    00:00:00 bash
</pre>
<p>Попробуем больше процессорного времени отдать процессу из под обычного пользователя</p>
<pre>
$ renice -10 20471
renice: 20471: setpriority: Отказано в доступе
</pre>
<p>Что и следовало ожидать. Только root пользователь может устанавливать повышенный приорите для задачи.</p>
<p><strong>Вопросы по LPI</strong> (приблизительные)</p>
<pre>
1) Which two of the following commands are equivalent to one another? (Select two.)
A. nice --value 10 crunch
B. nice -n -10 crunch
C. nice -10 crunch
D. nice crunch
</pre>
<pre>
2) Which of the following are restrictions on ordinary users’ abilities to run renice?
(Select all that apply.)
A. Users may not modify the priorities of processes that are already running.
B. Users may not modify the priorities of other users’ processes.
C. Users may not decrease the priority (that is, increase the priority value) of their own processes.
D. Users may not increase the priority (that is, decrease the priority value) of their own processes.
</pre>
<pre>
3) Which command is used to set the priority of a process when it is started?
A. jobs
B. renice
C. nice
D. top
</pre>
<p>Ответы</p>
<pre>
1)  The correct answer is <strong>C</strong>, <strong>D</strong>.
Option A isn’t a valid nice command because nice has no --value option
Option B is a valid nice command, but it sets the priority to –10 rather than 10
The default priority when none is specified is 10, and the nice -10
crunch command also sets the priority to 10, so options C and D are equivalent.
</pre>
<pre>
2)  The correct answer is <strong>B</strong>, <strong>D</strong>.
Only root may modify the priority of other users’ processes.
Similarly, only root may increase the priority of a process,
in order to prevent users from setting their processes to maximum priority thus stealing CPU
time from others. Option A correctly describes nice, but not renice; the whole point of renice
is to be able to change the priorities of existing processes. Option C also describes an action
that renice permits.
</pre>
<pre>
3) The correct answer is <strong>C</strong>.
The nice command is used to change the priority level of a process when it is started.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-6/index.html">Process execution priorities</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1103/section7.html">Приоритеты исполнения процесса</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/modify-process-execution-priorities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create, monitor, and kill processes (weight: 4)</title>
		<link>http://lpi.bezha.od.ua/create-monitor-and-kill-processes/</link>
		<comments>http://lpi.bezha.od.ua/create-monitor-and-kill-processes/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 14:10:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[&]]></category>
		<category><![CDATA[bg]]></category>
		<category><![CDATA[fg]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[kill]]></category>
		<category><![CDATA[killall]]></category>
		<category><![CDATA[nohup]]></category>
		<category><![CDATA[ps]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[uptime]]></category>

		<guid isPermaLink="false">http://lpi.bezha.od.ua/?p=1462</guid>
		<description><![CDATA[Candidates should be able to perform basic process management. Run jobs in the foreground and background. Signal a program to continue running after logout. Monitor active processes. Select and sort processes for display. Send signals to processes. The following is &#8230; <a href="http://lpi.bezha.od.ua/create-monitor-and-kill-processes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>Candidates should be able to perform basic process management.
Run jobs in the foreground and background.
Signal a program to continue running after logout.
Monitor active processes.
Select and sort processes for display.
Send signals to processes.</pre>
<p>The following is a partial list of the used files, terms and utilities:</p>
<pre>&amp;
bg
fg
jobs
ps
nohup
top
free
uptime
kill
killall</pre>
<p><strong>Управление foreground и background jobs</strong></p>
<p>Приостановление программы с помощью Ctrl-z</p>
<pre># watch -n2 free
[1]+  Остановлено  watch -n2 free</pre>
<p>Запуск программы в фоновом режиме с помощью &amp;</p>
<pre># pv /dev/zero &gt; /dev/null &amp;
[2] 13391
# tar -cvzf /home/bezha/bezha.tar.gz /home/bezha/*
[3]+  Остановлено  tar -cvzf /home/bezha/bezha.tar.gz /home/bezha/*</pre>
<p>Число в левой колонке — это порядковый номер задания, который bash присваивает ему при запуске.<br />
Плюс (+) у второго задания значит, что это «текущее задание», оно будет выведено на передний план при вводе fg.</p>
<p>Просмотр запущенных задач</p>
<pre># jobs -l
[1]- 12232 Остановлено (вывод на терминал) watch -n2 free
[2]  13391 Остановлено (сигнал)             pv /dev/zero &gt; /dev/null
[3]+ 18330 Остановлено  tar -cvzf /home/bezha/bezha.tar.gz /home/bezha/*</pre>
<p>Команда fg (foreground) позволяет сделать задачу активной</p>
<pre># fg 2
pv /dev/zero &gt; /dev/null</pre>
<p>Команда bg (background) позволяет переключить задачу в фоновый режим</p>
<pre># bg 3
[3]+ tar -cvzf /home/bezha/bezha.tar.gz /home/bezha/* &amp;</pre>
<p><strong>Статус процесса</strong><br />
<a href="http://ru.wikipedia.org/wiki/Ps">ps</a> &#8212; отображает различную информацию о статусе процесса.</p>
<pre># ps `jobs -p`
 PID TTY      STAT   TIME COMMAND
12232 pts/0    T      0:00 watch -n2 free
13391 pts/0    T      0:04 pv /dev/zero</pre>
<p>Если используем команду ps без всяких опций, то увидим список процессов, которые контролируются текущим терминалом</p>
<pre># ps
PID    TTY      TIME       CMD
31065 pts/0    00:00:00 su
31082 pts/0    00:00:00 bash
31114 pts/0    00:00:00 ps</pre>
<p>Получить список всех процессов выполняющихся в системе</p>
<pre># ps waux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   3004  1776 ?        Ss   09:20   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    09:20   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    09:20   0:01 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    09:20   0:00 [migration/0]
root         5  0.0  0.0      0     0 ?        S    09:20   0:00 [watchdog/0]
root         6  0.0  0.0      0     0 ?        S    09:20   0:00 [migration/1]
root         7  0.0  0.0      0     0 ?        S    09:20   0:01 [ksoftirqd/1]
...</pre>
<p>Описание полей</p>
<pre>USER Имя владельца процесса
PID Идентификатор процесса
%CPU Доля времени центрального процессора (в процентах), выделенная данном процессу
%MEM Часть реальной памяти (в процентах), используемая данным процессом
VSZ Виртуальный размер процесса в килобайтах
RSS Размер резидентного набора. Сколько физической памяти процесс использует (в килобайтах)
TTY Идентификатор управляющего терминала
STAT Текущий статус процесса
START Время запуска процесса
TIME Время центрального процессора, затребованное процессом
COMMAND Имя и аргументы исполняемой команды</pre>
<p>STAT Текущий статус процесса</p>
<pre>D – не прерывистый сон, обычно I/O
R – процесс выполняется
S – прерывистый сон, обычно это ожидание события чтобы закончить
T – процесс остановлен
X – процесс уничтожен
Z – процесс в состояние зомби</pre>
<p>Опция &#8211;forest позволяет легко просмотреть иерархию процессов и даст вам представление о том, как различные процессы в системе взаимосвязаны между собой</p>
<pre># ps aux --forest
bezha    30633  0.0  0.0   7884  3380 pts/0    Ss   14:26   0:00  \_ bash
root     31065  0.0  0.0   8560  1996 pts/0    S    14:29   0:00      \_ su
root     31082  0.0  0.0   7924  3476 pts/0    S    14:29   0:00          \_ bash
root      2534  0.0  0.0   2620  1152 pts/0    T    14:46   0:00              \_ top
root      9131  0.0  0.0   2620  1152 pts/0    T    15:19   0:00              \_ top
root     13264  0.0  0.0   5852  1052 pts/0    R+   15:41   0:00              \_ ps aux --forest</pre>
<p><a href="http://ru.wikipedia.org/wiki/Nohup">nohup</a> UNIX-утилита, запускающая указанную команду с игнорированием сигналов потери связи (hangup) и увеличением приоритета для планировщика задач на 5; таким образом, команда будет продолжать выполняться в фоновом режиме и после того, как пользователь выйдет из системы.</p>
<pre>nohup команда [аргумент…]</pre>
<p>! nohup не переводит автоматически команду в фоновый режим; пользователь должен сделать это явным образом, завершив командную строку символом «&amp;».</p>
<p><a href="http://ru.wikipedia.org/wiki/Top">top</a> отображает постоянно обновляющийся список процессов</p>
<pre>top - 16:00:44 up  6:40,  2 users,  load average: 1.27, 1.23, 1.11
Tasks: 191 total,   1 running, 188 sleeping,   2 stopped,   0 zombie
Cpu(s): 17.3%us,  6.7%sy,  0.6%ni, 74.7%id,  0.6%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3990420k total,  2632472k used,  1357948k free,   200236k buffers
Swap:  3227644k total,        0k used,  3227644k free,  1729792k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25800 bezha  20   0  318m  62m  22m S   21  1.6  20:40.11 chromium-browse
1179 root      20   0 54868  25m  13m S   13  0.6  37:38.13 Xorg
30629 bezha  20   0 94976  15m  11m S    6  0.4   0:14.34 gnome-terminal
1898 bezha    9  -11  151m 9112 7780 S    4  0.2  11:14.30 pulseaudio
1812 bezha    20   0  101m  13m 9892 S    2  0.3   0:15.58 gnome-settings-
1889 bezha    20   0 99396  23m 8324 S    2  0.6   4:28.37 compiz</pre>
<p><a href="http://www.thegeekstuff.com/2010/01/15-practical-unix-linux-top-command-examples/">15 примеров использования в Linux команды top</a></p>
<p>По умолчанию команда top изображает процессы в порядке загрузки ими процессора CPU, чтобы отсортировать процессы по памяти необходимо нажать M</p>
<pre>top - 16:16:42 up  6:56,  2 users,  load average: 1.16, 1.20, 1.08
Tasks: 191 total,   1 running, 188 sleeping,   2 stopped,   0 zombie
Cpu(s): 13.4%us,  5.0%sy,  0.3%ni, 81.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3990420k total,  2632668k used,  1357752k free,   201332k buffers
Swap:  3227644k total,        0k used,  3227644k free,  1734980k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25255 bezha   20   0  392m  98m  33m S    0  2.5   6:21.35 chromium-browse
25800 bezha   20   0  318m  63m  22m S   20  1.6  23:41.99 chromium-browse
2881 bezha     25   5  165m  61m  18m S    0  1.6   1:00.76 chromium-browse
2321 bezha     20   0  113m  50m 4156 S    3  1.3  12:02.40 conky</pre>
<p><strong>Отображаем все процессоры и ядра в top</strong><br />
По умолчанию</p>
<pre>top - 16:17:58 up  6:57,  2 users,  load average: 0.89, 1.11, 1.05
Tasks: 191 total,   1 running, 188 sleeping,   2 stopped,   0 zombie
Cpu(s): 13.2%us,  5.9%sy,  0.3%ni, 80.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   3990420k total,  2642240k used,  1348180k free,   201432k buffers
Swap:  3227644k total,        0k used,  3227644k free,  1741224k cached</pre>
<p>Если нажать 1</p>
<pre>top - 16:19:23 up  6:59,  2 users,  load average: 1.19, 1.12, 1.06
Tasks: 191 total,   3 running, 186 sleeping,   2 stopped,   0 zombie
Cpu0  : 11.3%us,  8.6%sy,  0.0%ni, 55.1%id, 24.6%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu1  : 22.9%us,  9.4%sy,  0.0%ni, 58.9%id,  8.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3990420k total,  2639132k used,  1351288k free,   203448k buffers
Swap:  3227644k total,        0k used,  3227644k free,  1735556k cached</pre>
<p>Уничтожаем задачу без выхода из top &#8211; k<br />
Переопределяем приоритет процесса без выхода из команды top &#8211; r<br />
Сортировать по имени пользователя &#8211; u<br />
Изменить число отображаемых процессов &#8211; n<br />
Выход &#8211; q</p>
<p>Аналогичная команда htop</p>
<pre># yum -y install htop (CentOS)
# apt-get -y install htop (Debian)</pre>
<pre>1  [||||||||||||||||||||                               20.4%]            Tasks: 280 total, 1 running
2  [||||||||||||||                                     13.9%]            Load average: 1.35 1.20 0.93
Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||   708/3896MB] Uptime: 11:14:47
Swp[                                                0/3151MB]

PID USER     PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
23226 bezha     20   0  360M 90244 33032 S  0.0  2.3  1:24.56 /usr/lib/chromium-browser
23234 bezha     20   0  360M 90244 33032 S  0.0  2.3  0:00.00 /usr/lib/chromium-browser
23235 bezha     20   0  360M 90244 33032 S  0.0  2.3  0:00.00 /usr/lib/chromium-browser</pre>
<p>Для просмотра статистики по памяти</p>
<pre># free
            total       used      free     shared  buffers   cached
Mem:       3990420    2308672    1681748     0     222876    1304396
-/+ buffers/cache:     781400    3209020
Swap:      3227644          0    3227644</pre>
<p>Для просмотра free удобно воспользоваться конструкцией</p>
<pre># watch -n 1 -d free
Every 1,0s: free
           total      used       free      shared  buffers   cached
Mem:       3990420    2315996    1674424     0     223088    1293256
-/+ buffers/cache:     799652    3190768
Swap:      3227644          0    3227644</pre>
<p>Опции команды free</p>
<pre>-b for bytes
-k for kilobytes
-m for megabytes
-g for gigabytes.
-t displays a total line</pre>
<p><a href="http://ru.wikipedia.org/wiki/Uptime">uptime</a> показывает текущее время, время работы после загрузки, количество текущих пользователей в компьютерной системе и нагрузку за последние 1, 5 и 15 минут</p>
<pre># uptime
21:04:19 up 11:43,  2 users,  load average: 1.93, 1.31, 1.03</pre>
<p><a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B_(UNIX)"><strong>Сигналы в Linux</strong></a> являются одним из способов взаимодействия между процессами</p>
<p>Сигналы посылаются:<br />
C терминала, нажатием специальных клавиш или комбинаций (Ctrl-C генерирует SIGINT, а Ctrl-Z SIGTSTP)<br />
Одним процессом другому (или самому себе), с помощью системного вызова kill()<br />
Ядром системы при возникновении аппаратных исключений<br />
Ядром системы при ошибочных системных вызовах<br />
Ядром системы для информирования о событиях ввода-вывода<br />
!Сигналы не могут быть посланы завершившемуся процессу, находящемуся в состоянии «зомби».</p>
<p>Главный способ посылки сигнала состоит в использовании команды <a href="http://ru.wikipedia.org/wiki/Kill">kill</a></p>
<p>Основные Сигналы<br />
SIGHUP (1) &#8211; используется для того, чтобы заставить программу перечитать свой конфигурационный файл<br />
SIGINT (2) &#8211; Прерывание с клавиатуры. (CTRL+C)<br />
SIGKILL (9) &#8211; Принудительное завершение программы. Этот сигнал нельзя обработать или игнорировать.<br />
SIGTERM (15) &#8211; Аккуратное завершение программы. Она может выполнить все необходимые операции перед своим завершением.<br />
SIGSTOP (19) &#8211; Приостанавливает выполнение процесса. Этот сигнал нельзя обработать или игнорировать<br />
SIGCONT (18) &#8211; Возобновление процесса остановленного сигналом SIGSTOP (эквивалентно использованию команды bg)<br />
SIGTSTP (20) &#8211; Приостанавливает процесс по команде пользователя. (CTRL+Z) (эквивалентно использованию команды fg)</p>
<pre>
!По-умолчанию, kill отправляет SIGTERM
</pre>
<p>Просмотреть список всех сигналов</p>
<pre>
# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX
</pre>
<p>Процесс может игнорировать оба сигнала, SIGTERM и SIGINT, либо по своему усмотрению, либо потому, что он остановлен. В этом случае, может быть необходимо использование  сигнала SIGKILL. Процесс не может игнорировать SIGKILL: </p>
<p><a href="http://ru.wikipedia.org/wiki/Killall">killall</a> UNIX?утилита, посылающая сигнал всем процессам, которые были запущены указанной командой. Если имя сигнала не указано, посылается сигнал SIGTERM.</p>
<p>В Debian входит в пакет psmisc</p>
<pre>
# dpkg -S $(which killall)
psmisc: /usr/bin/killall
</pre>
<pre>
# killall -v mysqld
mysqld(28237) завершён сигналом 15
# killall -9 -v mysqld
mysqld(28342) завершён сигналом 9
</pre>
<p><strong>Вопросы по LPI</strong> (приблизительные)</p>
<pre>
1) What is default signal for the kill command if no signal is specified as a command-line option?
A. SIGHUP
B. SIGINT
C. SIGKILL
D. SIGTERM
</pre>
<pre>
2) What signal can be used with the kill command to end proccess that do not respond
to the default signal?
A. SIGHUP
B. SIGINT
C. SIGKILL
D. SIGTERM
</pre>
<pre>
3) A user types kill -9 11287 at a bash. What is probable intent, assuming user typed the
correct command?
A. To cut a network connection using TCP port 11287
B. To display the number of processes that have been killed with signal 11287 in the last nine days
C. To cause a server with proccess ID 11287 to reload its configuration file
D. To terminate a misbehaving or hung programm with process ID 11287
</pre>
<pre>
4) What programm might you use to learn what system's load average is? (Select all that apply.)
A. ld
B. load
C. top
D. uptime
</pre>
<pre>
5) Which of the following commands creates a display of processes, showing the parent/child
relationships through links between their names?
A. ps --forest
B. ps aux
C. ps -e
D. All of the above
</pre>
<pre>
6) You use top to examine the CPU time being consumed by various processes on your system.
You discover that one process, dfcomp, is consuming more than 90 percent of your system’s CPU time.
What can you conclude?
A. Very little; dfcomp could be legitimately consuming that much CPU time or it could be
an unauthorized or malfunctioning program.
B. No program should consume 90 percent of available CPU time;
dfcomp is clearly malfunctioning  and should be terminated.
C. This is normal; dfcomp is the kernel’s main scheduling process, and consumes any unused CPU time.
D. This behavior is normal if your CPU is less powerful than a 2.5GHz EM64T Pentium;
but on newer systems, no program should consume 90 percent of CPU time.
</pre>
<pre>
7) You type jobs at a bash command prompt and receive a new command prompt with no intervening
output. What can you conclude?
A. The total CPU time used by your processes is negligible (below 0.1).
B. No processes are running under your username except the shell you’re using.
C. The jobs shell is installed and working correctly on the system.
D. No background processes are running that were launched from the shell you’re using.
</pre>
<pre>
8) The ____ command is used to view a snapshot of the processes runing ona system.
</pre>
<pre>
9) Which of the following is used to end the 408 process without allowing it to exit gracefully?
A. kill 408
B. kill -15 408
C. kill -1 408
D. kill -9 408
</pre>
<pre>
10) The ___ command runs the Netscape process in the background.
</pre>
<p>Ответы</p>
<pre>
1) The correct answer is <strong>D</strong>. The default signal for the kill command is SIGTERM.
</pre>
<pre>
2) The correct answer is <strong>C</strong>. SIGKILL or -9 an be used when process do not respond to the
default SEGTERM.
</pre>
<pre>
3) The correct answer is <strong>D</strong>.
Signal 9 corresponds to SIGKILL, which is an extreme way to kill processes that have run out of
control. To do as option C suggests, you’d need to tell kill to pass SIGHUP (signal 1) the command
would be kill -1 11287.
</pre>
<pre>
4) The correct answer is <strong>C</strong>,<strong>D</strong>.
The ld tool that links together programm modules into an executable programm
There is no standart Linux programm called load
The top utility display a dynamic list of processes, included load averages
Uptime show current time, the time since the system was booted, the number of active users, and the
load averages.
</pre>
<pre>
5) The correct answer is <strong>A</strong>.
The --forest option to ps shows parent/child relationships by creating visual links between process
names in the ps output.
Options B and C are both valid ps commands, but neither creates the specified effect.
</pre>
<pre>
6) The correct answer is <strong>A</strong>.
CPU-intensive programs routinely consume 90 percent or more of available CPU time,
but not all systems run such programs, some types of program bugs can create such CPU loads.
Thus, you must investigate the matter more. What is dfcomp? Is it designed as a CPU-intensive program?
Is it consuming this much CPU time consistently, or was this a brief burst of activity?
</pre>
<pre>
7) The correct answer is <strong>D</strong>.
The jobs command doesn’t check or summarize CPU load.
The jobs command also doesn’t check for processes run from shells other than the current one.
There is no standard jobs shell in Linux, so option C is incorrect.
</pre>
<pre>
8) <strong>ps</strong>. The ps command is used to view a snapshot of processes running on the system.
</pre>
<pre>
9) The correct answer is <strong>D</strong>.
The -9 signal kills the process whithout allowing it to exit gracefully.
</pre>
<pre>
10) <strong>Netscape &#038;</strong>.
The &#038; symbol is used to start a process as a background job.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-5/index.html">Create, monitor, and kill processes</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1103/section6.html">Создание, отслеживание и уничтожение процессов</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/create-monitor-and-kill-processes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create and change hard and symbolic links (weight: 2)</title>
		<link>http://lpi.bezha.od.ua/create-and-change-hard-and-symbolic-links/</link>
		<comments>http://lpi.bezha.od.ua/create-and-change-hard-and-symbolic-links/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 21:08:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[ln]]></category>

		<guid isPermaLink="false">http://lpi.bezha.od.ua/?p=1430</guid>
		<description><![CDATA[Candidates should be able to create and manage hard and symbolic links to a file. Create links. Identify hard and/or softlinks. Copying versus linking files. Use links to support system administration tasks. The following is a partial list of the &#8230; <a href="http://lpi.bezha.od.ua/create-and-change-hard-and-symbolic-links/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to create and manage hard and symbolic links to a file.
Create links.
Identify hard and/or softlinks.
Copying versus linking files.
Use links to support system administration tasks.
</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>
ln
</pre>
<p>Содержание:<br />
<a href="#L-1"><strong>1 </strong>Hard Links</a><br />
<a href="#L-2"><strong>2 </strong>Create Hard Links</a><br />
<a href="#L-3"><strong>3 </strong>Search Hard Links</a><br />
<a href="#L-4"><strong>4 </strong>Soft Links</a><br />
<a href="#L-5"><strong>5 </strong>Create Soft Links</a><br />
<a href="#L-6"><strong>6 </strong>Search Soft Links</a></p>
<p><a name="L-1"></a><a href="http://ru.wikipedia.org/wiki/%D0%96%D1%91%D1%81%D1%82%D0%BA%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0">Жесткими ссылками </a> называются указатели на inode.</p>
<p>Для создания жестких ссылок используется команда ln</p>
<pre>
# ln [options] source link
</pre>
<p><a name="L-2"></a><strong>Создание жесткой ссылки</strong></p>
<pre>
# ln file1 file2
# ls -il file*
525364 -rw-r--r-- 2 root root 8 2011-02-02 22:21 file1
525364 -rw-r--r-- 2 root root 8 2011-02-02 22:21 file2
</pre>
<p><a name="L-3"></a><strong>Поиск жестких ссылок</strong><br />
C помощью команды ls</p>
<pre>
# ls -il file*
525364 -rw-r--r-- 2 root root 8 2011-02-02 22:21 file1
525364 -rw-r--r-- 2 root root 8 2011-02-02 22:21 file2
</pre>
<p>С помощью команды find </p>
<pre>
# find . -samefile file2
./file1
./file2
# # find . -inum 525364
./file1
./file2
</pre>
<p>- Жесткие ссылки могут существовать только в рамках определенной файловой системы. Они не могут связывать несколько файловых систем, так как ссылка на файл происходит по номеру inode, который уникален только в рамках файловой системы.<br />
- Если на один узел inode указывает несколько ссылок, этот узел будет удален только тогда, когда количество ссылок на него станет равным нулю.<br />
- Нельзя создать жесткую ссылку на каталог, даже несмотря на то, что в системе . и .. определены как жесткие ссылки</p>
<p><a name="L-4"></a><a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0">Символьная ссылка</a> указывает на наименование другого объекта, а не на его узел inode. Символические ссылки могут указывать на каталоги и на файлы, расположенные в других файловых системах. Они часто используются для присвоения альтернативных имен системным командам.</p>
<p>Символические ссылки обозначены маленькой буквой l в первом символе</p>
<pre>
# ls -l /sbin/mkfs.*
-rwxr-xr-x 1 root root  13784 2010-12-10 15:52 /sbin/mkfs.bfs
-rwxr-xr-x 1 root root 108300 2010-06-21 11:35 /sbin/mkfs.btrfs
-rwxr-xr-x 1 root root  21996 2010-12-10 15:52 /sbin/mkfs.cramfs
-rwxr-xr-x 1 root root  55140 2010-08-18 19:01 /sbin/mkfs.ext2
-rwxr-xr-x 1 root root  55140 2010-08-18 19:01 /sbin/mkfs.ext3
-rwxr-xr-x 1 root root  55140 2010-08-18 19:01 /sbin/mkfs.ext4
-rwxr-xr-x 1 root root  55140 2010-08-18 19:01 /sbin/mkfs.ext4dev
-rwxr-xr-x 1 root root  59040 2009-12-08 10:37 /sbin/mkfs.jfs
-rwxr-xr-x 1 root root  17956 2010-12-10 15:52 /sbin/mkfs.minix
lrwxrwxrwx 1 root root      7 2011-01-12 13:57 /sbin/mkfs.msdos -> mkdosfs
-rwxr-xr-x 1 root root 157784 2010-03-07 06:58 /sbin/mkfs.reiserfs
lrwxrwxrwx 1 root root      7 2011-01-12 13:57 /sbin/mkfs.vfat -> mkdosfs
-rwxr-xr-x 1 root root 305344 2010-05-31 12:34 /sbin/mkfs.xfs
</pre>
<p><a name="L-5"></a><strong>Создание символических ссылок</strong></p>
<pre>
# touch file3
# ln -s file3 file4
# ln -s file3 file 5
# ls -l file*
-rw-r--r-- 1 root root 0 2011-02-02 22:36 file3
lrwxrwxrwx 1 root root 5 2011-02-02 22:36 file4 -> file3
lrwxrwxrwx 1 root root 5 2011-02-02 22:36 file5 -> file3
</pre>
<p><a name="L-6"></a><strong>Поиск символических ссылок</strong><br />
С помощью команды find и параметром -lname</p>
<pre>
# find . -lname "*file3"
./file5
./file4
</pre>
<p>- Удаление ссылки не влияет на файл, на который она ссылается.<br />
- Символическая ссылка не защищает файл от удаления; в случае, если файл, на который указывает ссылка, перемещается или удаляется, эта ссылка будет испорчена.</p>
<p><strong>Вопросы по LPI</strong> (приблизительные)</p>
<pre>
1) You want to create a link from your home directory on your hard disk to a directory on a
CD-ROM drive. Which of the following types of links might you use?
A. Only a symbolic link.
B. Only a hard link.
C. Either a symbolic or a hard link.
D. None of the above; such links aren’t possible under Linux.
</pre>
<pre>
2) The default action of the ln command is to create a _______________.
</pre>
<pre>
3) Which of the following results when a soft link is copied?
A. A new copy of the soft link is created.
B. A hard link to the original file is created.
C. A hard link to the soft link is created.
D. A new copy of the original file is created.
</pre>
<p>Ответы:</p>
<pre>
1) The correct answer is <strong>A</strong>. Symbolic links can point across filesystems, so creating a symbolic link
from one filesystem  to another (on the CD-ROM) isn’t a problem.
Hard links, as in options B and C, are restricted to a single filesystem and so won’t work for the
described purpose. Because symbolic links will work as described, option D is incorrect.
</pre>
<pre>
2) <strong>hard link</strong>. By default, the ln command creates a hard link to the specified file.
</pre>
<pre>
3) The correct answer is <strong>D</strong>. When a soft link is copied, a new copy of the original file is stored at
the target location.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-104-6/index.html">Create and change hard and symbolic links</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1104/section8.html">Жесткие и символические ссылки</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/create-and-change-hard-and-symbolic-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manage disk quotas (weight: 1)</title>
		<link>http://lpi.bezha.od.ua/manage-disk-quotas/</link>
		<comments>http://lpi.bezha.od.ua/manage-disk-quotas/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 16:58:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[edquota]]></category>
		<category><![CDATA[quota]]></category>
		<category><![CDATA[quotaon]]></category>
		<category><![CDATA[repquota]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1378</guid>
		<description><![CDATA[Candidates should be able to manage disk quotas for users. Set up a disk quota for a filesystem. Edit, check and generate user quota reports. The following is a partial list of the used files, terms and utilities quota edquota &#8230; <a href="http://lpi.bezha.od.ua/manage-disk-quotas/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to manage disk quotas for users.
Set up a disk quota for a filesystem.
Edit, check and generate user quota reports.
</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>
quota
edquota
repquota
quotaon
</pre>
<p><strong>Установка режима квотирования</strong></p>
<p>Существует три версии поддержки квот<br />
vfsold (версия 1),<br />
vfsv0 (версия 2),<br />
xfs (для файловой системы XFS).</p>
<p>Устанавливаем quota в Debian</p>
<pre>
# apt-get -y install quota
# quota -V
Quota версия 4.00-pre1.
Скомпилировано с использованием:
USE_LDAP_MAIL_LOOKUP EXT2_DIRECT HOSTS_ACCESS ALT_FORMAT RPC RPC_SETQUOTA BSD_BEHAVIOUR
</pre>
<p>Устанавливаем quota в CentOS</p>
<pre>
# yum install quota
</pre>
<p>Установка режима квотирования в /etc/fstab</p>
<pre>
/dev/sdb1 /home/bezha/disk2 ext4 defaults,usrquota,grpquota 0 2
</pre>
<p>Внеся изменения в /etc/fstab и добавив квоты, необходимо перемонтировать файловые системы и, для файловых систем, отличных от XFS, создать файлы квот и разрешить проверку квотирования. Команда quotacheck проверяет квотирование на всех файловых системах и создает необходимые файлы aquota.user и aquota.group, если их не существует. Также она может восстановить поврежденные файлы квот.</p>
<p>Опции команды quotacheck</p>
<pre>
-a для всех файловых систем в /etc/fstab, для которых разрешено автоматическое монтирование
-u для пользовательских квот (установлено по умолчанию)
-g для групповых квот
-v для подробного вывода
</pre>
<p>Создание файлов квот</p>
<pre>
# quotacheck -augv
quotacheck: Your kernel probably supports journaled quota but you are not using it.
Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/home/bezha/disk2] done
quotacheck: Checked 2 directories and 2 files
</pre>
<p>Предупреждение о том что наше ядро поддерживает журналируемую quota и предупреждает о желательном переключении на нее.<br />
Поправим файл /etc/fstab</p>
<pre>
/dev/sdb1 /home/bezha/disk2 ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 2
</pre>
<p>Перемонтируем файловую систему и проверяем</p>
<pre>
# mount -o remount /home/bezha/disk2
# quotacheck -augv
quotacheck: Scanning /dev/sdb1 [/home/bezha/disk2] done
quotacheck: Checked 2 directories and 2 files
</pre>
<p>Включение квотирования</p>
<pre>
# quotaon -ugva
/dev/sdb1 [/home/bezha/disk2]: group quotas turned on
/dev/sdb1 [/home/bezha/disk2]: user quotas turned on
</pre>
<p>Отключение квотирования</p>
<pre>
# quotaoff -ugv /dev/sdb1
/dev/sdb1 [/home/bezha/disk2]: group quotas turned off
/dev/sdb1 [/home/bezha/disk2]: user quotas turned off
</pre>
<p>Проверить включены квоты или нет</p>
<pre>
# quotaon -p /dev/sdb1
group quota on /home/bezha/disk2 (/dev/sdb1) is off
user quota on /home/bezha/disk2 (/dev/sdb1) is off
</pre>
<p><strong>Установка пределов квот</strong><br />
Квотирование управляется либо через бинарные файлы в корне файловой системы, либо через метаданные файловой системы. Для установки квоты для отдельного пользователя используется команда edquota. Эта команда извлекает информацию о квотах для данного пользователя из различных файловых систем, для которых включено квотирование, создает временный файл и открывает редактор, позволяющий изменять квоты.</p>
<pre>
# edquota root
Disk quotas for user root (uid 0):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdb1                        13          0          0          2        0        0
</pre>
<p>edquota показывает текущее использование блоков 1К и inode для каждой файловой системы, где включено квотирование. Также существуют мягкие и жесткие пределы на использование блоков и inode. В данном примере их значения установлены в 0, что означает, что пределы квот не установлены.</p>
<p>Мягкие пределы – это пределы, при достижении которых пользователь получает предупреждения о превышении квоты.<br />
Жесткие пределы – это границы, которые пользователь не может превысить.<br />
Можно считать, что ограничения на блоки &#8211; это ограничения на объем сохраняемой информации, а ограничения на inode – это ограничения количества файлов и каталогов.</p>
<p><strong>Изменение пределов квот</strong><br />
Установим для меня ограничения в файловой системе /dev/sdb: по объему – 10 Мбайт, по количеству – 1000 файлов. Добавляя 10% запаса на жесткие пределы</p>
<pre>
Disk quotas for user root (uid 0):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                        13      10240      11264          2     1000     1100
</pre>
<p><strong>Установка квот по прототипу</strong><br />
использовать значения квот пользователя bezha в качестве прототипа для квот других пользователей</p>
<pre>
# edquota -p bezha bezha1 bezha2 bezha3
</pre>
<p><strong>Льготный период</strong><br />
Пользователи могут превышать мягкие пределы квот в течение &#8220;льготного периода&#8221;, который по умолчанию составляет 7 дней. После истечения этого периода мягкие пределы становятся жесткими.<br />
Установим период в 5 минут</p>
<pre>
# edquota -t
race period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem             Block grace period     Inode grace period
/dev/sdb1              5minutes                 7days
</pre>
<p><strong>Проверка квот</strong><br />
Команда quota без указания опций выводит квоты для вызвавшего ее пользователя во всех файловых системах, где такие квоты установлены.</p>
<pre>
# quota
Disk quotas for user root (uid 0):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sdb1      13   10240   11264               2    1000    1100
</pre>
<p>Информация для всех файловых систем, в которых включено квотирование. </p>
<pre>
# quota -v
Disk quotas for user root (uid 0):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sdb1      13   10240   11264               2    1000    1100
</pre>
<p><strong>Превышение квот</strong></p>
<pre>
# quota
Disk quotas for user root (uid 0):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sdb1   12013*  10240   11264   00:05       5    1000    1100
</pre>
<p>Рядом с мягким пределом выводится звездочка, показывающая, что пользователь превысил квоту.<br />
В столбце grace period теперь показано, сколько времени есть у пользователя, чтобы исправить положение.</p>
<p><strong>Создание отчета о квотах</strong></p>
<pre>
# repquota -a
*** Report for user quotas on device /dev/sdb1
Block grace time: 00:05; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      +-   16013   10240   11264  00:02       6  1000  1100
</pre>
<p>Плюс означает что пользователь превысил квоту.</p>
<p>Просмотреть квоты для всех пользователей и групп каталога /home/bezha/disk2</p>
<pre>
# repquota -ug /home/bezha/disk2/
*** Report for user quotas on device /dev/sdb1
Block grace time: 00:05; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      +-   16013   10240   11264  00:01       6  1000  1100       

*** Report for group quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   16013       0       0              6     0     0
</pre>
<p><strong>Предупреждение пользователей</strong><br />
Команда warnquota используется для отправки предупреждений по электронной почте пользователям, превысившим квоты. Если квоту превысила группа, сообщения по электронной почте отправляются пользователям, указанным в /etc/quotagrpadmins</p>
<p><strong>Вопросы по LPI</strong> (приблизительные)</p>
<pre>
1) You see the usrquota and grpquota options in the /etc/fstab entry for a filesystem.
What is the consequence of these entries?
A. Quota support will be available if it’s compiled into the kernel; it will be automatically
activated when you mount the filesystem.
B. Quota support will be available if it’s compiled into your kernel, but you must activate
it with the quotaon command.
C. Quota support will be disabled on the filesystem in question unless you activate it with
the quotaon command.
D. Nothing; these options are malformed and so will have no effect.
</pre>
<pre>
2) Which of the following commands can be used to summarize the quota information about all
filesystems?
A. repquota
B. repquota -a
C. quotacheck
D. quotacheck -a
</pre>
<pre>
3) Which command is used to view quota information for a specific user?
A. edquota
B. quota
C. repquota
D. quotaon
</pre>
<pre>
4) File systems utilizing quotas are configured in which file?
A. /etc/services
B. /etc/hosts
C. /etc/fstab
D. /etc/mtab
</pre>
<p><strong>Ответы</strong></p>
<pre>
1) The correct answer is <strong>B</strong>. Using quotas requires kernel support, the usrquota or grpquota
filesystem mount option, and activation via the quotaon command (which often appears in SysV startup
scripts). Thus, option B is correct.
Option A suggests that quotaon is not necessary.
Option C suggests that quotaon is sufficient, but neither is true.
The usrquota and grpquota options are both valid, so option D is incorrect.
</pre>
<pre>
2) The correct answer is <strong>B</strong>.
The repquota utility is used to summarize the quota information about the filesystem.
When used with the –a option, it shows this information for all filesystems.
The quotacheck utility checks quota information about a disk and writes corrections.
</pre>
<pre>
3) The correct answer is <strong>B</strong>. Quotas for specific users are viewed with the quota command.
The repquota command will provide a report of quota usage for all users.
The edquota command is used to edit quotas, and quotaon is used to enable quotas on the system.
</pre>
<pre>
4) The correct answer is <strong>C</strong>.  File systems utilizing quotas are configured in the /etc/fstab file.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-104-4/index.html">Manage disk quotas</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1104/section5.html">Дисковые квоты</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/manage-disk-quotas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maintain the integrity of filesystems (weight: 2)</title>
		<link>http://lpi.bezha.od.ua/maintain-the-integrity-of-filesystems/</link>
		<comments>http://lpi.bezha.od.ua/maintain-the-integrity-of-filesystems/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 21:27:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[debugfs]]></category>
		<category><![CDATA[df]]></category>
		<category><![CDATA[du]]></category>
		<category><![CDATA[dumpe2fs]]></category>
		<category><![CDATA[e2fsck]]></category>
		<category><![CDATA[fsck]]></category>
		<category><![CDATA[tune2fs]]></category>
		<category><![CDATA[xfs tools]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1337</guid>
		<description><![CDATA[Candidates should be able to maintain a standard filesystem, as well as the extra data associated with a journaling filesystem. Verify the integrity of filesystems. Monitor free space and inodes. Repair simple filesystem problems. The following is a partial list &#8230; <a href="http://lpi.bezha.od.ua/maintain-the-integrity-of-filesystems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to maintain a standard filesystem, as well as the extra data associated
with a journaling filesystem. Verify the integrity of filesystems. Monitor free space and inodes.
Repair simple filesystem problems.
</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>
du
df
fsck
e2fsck
debugfs
dumpe2fs
tune2fs
xfs tools (such as xfs_metadump and xfs_info)
</pre>
<p><strong>Контроль свободного пространства</strong><br />
<a href="http://ru.wikipedia.org/wiki/Df">df</a> (аббревиатура от disk free) — утилита в UNIX и UNIX-подобных системах, показывает список всех файловых систем по именам устройств, сообщает их размер, занятое и свободное пространство и точки монтирования.</p>
<p>Если добавить опцию -T, к выводу будет добавлен тип файловой системы</p>
<pre>
# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext4    73744616  23393676  46604892  34% /
none      devtmpfs     1986948       288   1986660   1% /dev
none         tmpfs     1995208      5560   1989648   1% /dev/shm
none         tmpfs     1995208       116   1995092 n  1% /var/ru
none         tmpfs     1995208         0   1995208   0% /var/lock
none       debugfs    73744616  23393676  46604892  34% /var/lib/ureadahead/debugfs
:/share        nfs   960681376 918378880  42302496  96% /home/bezha/popcorn
</pre>
<p>Записи <a href="http://ru.wikipedia.org/wiki/Tmpfs">tmpfs</a> относятся к файловым системам в виртуальной памяти. Они существуют только в оперативной памяти или пространстве подкачки и создаются в момент монтирования без использования команды mkfs.</p>
<p>Ключ -h или &#8211;human-readable отобразит размер в человеко-читабельном формате (1K для 1024)</p>
<pre>
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              71G   23G   45G  34% /
none                  1.9G  288K  1.9G   1% /dev
none                  2.0G  5.5M  1.9G   1% /dev/shm
none                  2.0G  116K  2.0G   1% /var/run
none                  2.0G     0  2.0G   0% /var/lock
none                   71G   23G   45G  34% /var/lib/ureadahead/debugfs
:/share              917G  876G   41G  96% /home/bezha/popcorn
</pre>
<p>Ключ -H, &#8211;si так же отобразит размер в человеко-читабельном формате, но (1K для 1000)</p>
<pre>
# df --si
Filesystem             Size   Used  Avail Use% Mounted on
/dev/sda1               76G    24G    48G  34% /
none                   2.1G   295k   2.1G   1% /dev
none                   2.1G   5.7M   2.1G   1% /dev/shm
none                   2.1G   119k   2.1G   1% /var/run
none                   2.1G      0   2.1G   0% /var/lock
none                    76G    24G    48G  34% /var/lib/ureadahead/debugfs
192.168.0.111:/share   984G   941G    44G  96% /home/bezha/popcorn
/dev/sdb7               11G   8.2k    11G   1% /mnt
</pre>
<p>Если необходимо вывести данные об использовании inode, применяется команда df c опцией -i<br />
Можно исключить вывод данных по определенной файловой системе, используя опцию -x</p>
<pre>
df -iT -x nfs
Filesystem    Type    Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1     ext4   4685824  175222 4510602    4% /
none      devtmpfs    206304     885  205419    1% /dev
none         tmpfs    210435       4  210431    1% /dev/shm
none         tmpfs    210435      58  210377    1% /var/run
none         tmpfs    210435       1  210434    1% /var/lock
none       debugfs   4685824  175222 4510602    4% /var/lib/ureadahead/debugfs
/dev/sdb7     vfat         0       0       0    -  /mnt
</pre>
<p>Ограничить информацию определенными типами файловых систем, использую опцию -t</p>
<pre>
# df -iT -t ext4 -t vfat
Filesystem    Type    Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1     ext4   4685824  175223 4510601    4% /
/dev/sdb7     vfat         0       0       0    -  /mnt
</pre>
<p>Утилиту df можно использовать для получения информации о том, к какой файловой системе относится какой-либо каталог или файл</p>
<pre>
# df -k House.M.D.s04e06.rus.LostFilm.TV.avi
Filesystem           1K-blocks      Used Available Use% Mounted on
192.168.0.111:/share 960681376 918378880  42302496  96% /home/bezha/popcorn
</pre>
<p>или</p>
<pre>
# df -m House.S05E12.Painless.Proper.720p.HDTV.x264.Rus.mkv
Filesystem           1M-blocks      Used Available Use% Mounted on
192.168.0.111:/share    938166    896855     41312  96% /home/bezha/popcorn
</pre>
<p>Команда df выводит информацию только о файловой системе в целом. Иногда необходимо узнать, сколько места занимает каталог home, или какой размер раздела потребуется, чтобы разместить каталог /usr в отдельной файловой системе. Для решения этих задач используется команда du.</p>
<p><a href="http://ru.wikipedia.org/wiki/Du">du</a> (аббревиатура от англ. disk usage) — стандартная Unix программа для оценки занимаемого файлового пространства.</p>
<p>Команда du выводит информацию о файле (файлах), имена которых заданы в качестве параметров. Если задано имя каталога, то du определяет размер всех файлов и подкаталогов этого каталога на всех уровнях вложения. Результат работы команды может быть очень объемным.</p>
<pre>
# du  /boot/
184     /boot/boot/grub
188     /boot/boot
420     /boot/grub/locale
2204    /boot/grub
25524   /boot/
</pre>
<p>Для вывода сводной информации по каталогу ключ -s</p>
<pre>
# du -s /boot
25524   /boot/
</pre>
<p>Для вывода суммарных данных ключ -с</p>
<pre>
# du -sc /boot/
25524   /boot/
25524   total
</pre>
<p>Human-readable аналогично как и у утилиты df</p>
<pre>
# du -ch /boot/
184K    /boot/boot/grub
188K    /boot/boot
420K    /boot/grub/locale
2.2M    /boot/grub
25M     /boot/
25M     total
</pre>
<p>Для использования du вы должны иметь права чтения каталогов, к которым вы ее применяете. Чтобы с гарантией иметь соответствующие права доступа, используйте полномочия root.</p>
<pre>
# du -csh /usr/*
94M     /usr/bin
36K     /usr/games
14M     /usr/include
1.2G    /usr/lib
148K    /usr/local
12M     /usr/sbin
1.1G    /usr/share
86M     /usr/src
2.5G    total
</pre>
<p><strong>Проверка файловых систем</strong></p>
<p>Иногда в системе может произойти сбой или отключиться питание. В этих случаях Linux не может аккуратно размонтировать файловые системы, и они могут оказаться в несогласованном состоянии.Основной инструмент для проверки файловых систем &#8211; команда <a href="http://ru.wikipedia.org/wiki/Fsck">fsck</a>, которая, аналогично mkfs, является интерфейсом доступа к командам проверки различных типов файловых систем.</p>
<pre>
ls -la /sbin/*fsck*
-rwxr-xr-x 1 root root 124496 Jun 21  2010 /sbin/btrfsck
-rwxr-xr-x 1 root root  50732 May  9  2010 /sbin/dosfsck
-rwxr-xr-x 1 root root 176768 Aug 18 19:01 /sbin/e2fsck
-rwxr-xr-x 1 root root  26352 Dec 10 15:52 /sbin/fsck
-rwxr-xr-x 1 root root  13748 Dec 10 15:52 /sbin/fsck.cramfs
-rwxr-xr-x 1 root root 176768 Aug 18 19:01 /sbin/fsck.ext2
-rwxr-xr-x 1 root root 176768 Aug 18 19:01 /sbin/fsck.ext3
-rwxr-xr-x 1 root root 176768 Aug 18 19:01 /sbin/fsck.ext4
-rwxr-xr-x 1 root root 176768 Aug 18 19:01 /sbin/fsck.ext4dev
-rwxr-xr-x 1 root root 399216 Dec  8  2009 /sbin/fsck.jfs
-rwxr-xr-x 1 root root  26072 Dec 10 15:52 /sbin/fsck.minix
lrwxrwxrwx 1 root root      7 Jan 12 13:57 /sbin/fsck.msdos -> dosfsck
-rwxr-xr-x 1 root root    333 Nov  1 18:36 /sbin/fsck.nfs
-rwxr-xr-x 1 root root    282 Mar  7  2010 /sbin/fsck.reiserfs
lrwxrwxrwx 1 root root      7 Jan 12 13:57 /sbin/fsck.vfat -> dosfsck
-rwxr-xr-x 1 root root    450 May 31  2010 /sbin/fsck.xfs
-rwxr-xr-x 1 root root 399216 Dec  8  2009 /sbin/jfs_fsck
-rwxr-xr-x 1 root root 200396 Dec  8  2009 /sbin/jfs_fscklog
-rwxr-xr-x 1 root root 309588 Mar  7  2010 /sbin/reiserfsck
</pre>
<p>Посмотреть какие системы какой командой будут проверяться</p>
<pre>
# fsck -N /dev/sda7 /dev/sdb[89]
fsck from util-linux-ng 2.17.2
[/sbin/fsck.ext2 (1) -- /dev/sda7] fsck.ext2 /dev/sda7
[/sbin/fsck.reiserfs (2) -- /dev/sdb8] fsck.reiserfs /dev/sdb8
[/sbin/fsck.xfs (3) -- /dev/sdb9] fsck.xfs /dev/sdb9
</pre>
<p>Процесс загрузки системы с помощью команды fsck проверяет корневую файловую систему и другие файловые системы, указанные в управляющем файле /etc/fstab. Если файловая система не была размонтирована корректно, проводится проверка целостности системы. Это определяется значением поля pass (или passno) (шестое поле записи /etc/fstab). Файловые системы со значением pass, установленным в ноль, не тестируются во время загрузки. Корневая файловая система имеет значение pass, равное 1, и тестируется первой. Другие файловые системы обычно имеют значение pass от двух и выше, которое указывает, в каком порядке их надо проверять. Несколько операций fsck могут выполняться параллельно, поэтому различные файловые системы могут иметь одинаковые значения pass.</p>
<pre>
# file system    mount point     type  options       dump  pass
proc            /proc           proc    defaults        0       0
/dev/hda6       /               reiserfs defaults       0       1
/dev/hda2       /boot           ext3    defaults        0       2
/dev/hda8       /dos            vfat    defaults        0       0
/dev/hda7       /home           xfs     defaults        0       2
</pre>
<p>Некоторые журналируемые файловые системы, такие как ReiserFS и xfs, могут иметь значение pass, установленное в 0, поскольку проверку и восстановление файловой системы производит программа журналирования, а не fsck.</p>
<p>Наиболее востребованные опции у fsck<br />
-A &#8211; проверить все системы которые отмечены в /etc/fstab как проверяемые<br />
-C &#8211; прогресс-бар<br />
-N &#8211; посмотреть как будет идти проверка но не выполнять ее<br />
-V &#8211; verbose просмотр<br />
-a(p) &#8211; провести автоматическую проверку<br />
-r &#8211; провести интерактивную проверку<br />
-f &#8211; провести полную проверку системы, даже если она отмечена как чистая</p>
<p>Можно проверять следующими способами</p>
<pre>
# fsck /dev/sdb1
# fsck.ext3 LABEL=sdb1
# e2fsck UUID=d7f75420-0122-4fd5-b1d7-1df574591e20
</pre>
<p>Если вы попробуете проверить примонтированную файловую систему, вы увидите предупреждение</p>
<pre>
# fsck /dev/sda1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda1 is mounted.

WARNING!!!  The filesystem is mounted.   If you continue you ***WILL***
cause ***SEVERE*** filesystem damage.

Do you really want to continue (y/n)? no

check aborted.
</pre>
<p>Проверку необходимо выполнять на размонтированном разделе или в single режиме.</p>
<p>Проверка XFS с помощью fsck</p>
<pre>
# fsck /dev/sdb9
fsck from util-linux-ng 2.17.2
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_check(8) and xfs_repair(8).
# xfs_check /dev/sdb9
</pre>
<pre>
e2fsck check a Linux ext2/ext3/ext4 file system
</pre>
<p>dumpe2fs Выводит информацию о дескрипторах суперблоков и групп блоков в файловых системах ext2/ext3/ext4</p>
<pre>
# dumpe2fs -h /dev/sdb1
Filesystem created:       Wed Jan 19 14:48:19 2011
Last mount time:          n/a
Last write time:          Thu Jan 20 17:29:02 2011
Mount count:              0
Maximum mount count:      31
Last checked:             Thu Jan 20 17:29:02 2011
Check interval:           15552000 (6 months)
Next check after:         Tue Jul 19 18:29:02 2011
</pre>
<p>Для файловой системы xfs необходимо использовать команду</p>
<pre>
# xfs_info /dev/sdb9
meta-data=/dev/sdb9              isize=256    agcount=4, agsize=66266 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=265064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
</pre>
<p>Вместо /dev/sdb9 можно использовать и mount point</p>
<pre>
xfs_info /mnt/
meta-data=/dev/sdb9              isize=256    agcount=4, agsize=66266 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=265064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
</pre>
<p>xfs_growfs Расширяет файловую систему XFS (если имеется дополнительный раздел).<br />
xfs_admin Изменяет параметры файловой системы XFS.<br />
xfs_repair Восстанавливает файловую систему XFS, когда проверок при монтировании установке недостаточно для восстановления системы.<br />
xfs_db Проверяет или отлаживает файловую систему XFS.</p>
<p><a href="http://wiki.kryukov.biz/wiki/Tune2fs">tune2fs</a>  &#8212; можно настраивать параметры уже существующих фаловых систем типа ext2 и ext3.<br />
–l	 Позволяет получить информацию, хранящуюся в суперблоке</p>
<pre>
# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          5d9f05a8-b17e-43da-828a-de45cad837a6
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              50288
Block count:              200804
Reserved block count:     10040
Free blocks:              193336
Free inodes:              50277
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      49
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         7184
Inode blocks per group:   449
Filesystem created:       Wed Jan 19 14:48:19 2011
Last mount time:          n/a
Last write time:          Thu Jan 20 17:29:02 2011
Mount count:              0
Maximum mount count:      31
Last checked:             Thu Jan 20 17:29:02 2011
Check interval:           15552000 (6 months)
Next check after:         Tue Jul 19 18:29:02 2011
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      b48dae43-52f4-4ce7-8560-d29d915a03ed
Journal backup:           inode blocks
</pre>
<p>–j Добавляет файл журнала. При помощи этого параметра можно превратить файловую систему ext2 в ext3. Иногда, при повреждении файловой системы ext3, программа проверки удаляет файл журнала. Tune2s позволяет создать файл по новой.</p>
<p>-m	 Позволяет изменить процент дискового пространства резервируемого за суперпользователем</p>
<p>–L	 Позволяет изменить метку файловой системы</p>
<pre>
# tune2fs -L sdb1 /dev/sdb1
sudo tune2fs -L sdb1 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
</pre>
<p>Проверяем</p>
<pre>
# blkid /dev/sdb1
/dev/sdb1: LABEL="sdb1" UUID="5d9f05a8-b17e-43da-828a-de45cad837a6" SEC_TYPE="ext2" TYPE="ext3
</pre>
<p>debugfs &#8212; Команда для интерактивной отладки файловой системы ext2/ext3/ext4</p>
<p><strong>Вопросы LPI-I</strong> ( приблизительные )</p>
<pre>
1) Which of the following options is used with fsck to force it to use a particular
filesystem type?
A. -A
B. -N
C. -t
D. -C
</pre>
<pre>
2) Which of the following pieces of information can df not report?
A. How long the filesystem has been mounted
B. The number of inodes used on an ext3fs partition
C. The filesystem type of a partition
D. The percentage of available disk space used on a partition
</pre>
<pre>
3) What is an advantage of a journaling filesystem over a conventional (non-journaling) filesystem?
A. Journaling filesystems are older and better tested than non-journaling filesystems.
B. Journaling filesystems never need to have their filesystems checked with fsck.
C. Journaling filesystems support Linux ownership and permissions; non-journaling filesystems don’t.
D. Journaling filesystems require shorter disk checks after a power failure or system crash.
</pre>
<p><strong>Ответы</strong>:</p>
<pre>
1) The correct answer is <strong>C</strong>.
The –t option is used to tell fsck what filesystem to use. Normally, fsck determines the filesystem
type automatically.
The –A option causes fsck to check all the filesystems marked to be checked in /etc/fstab.
The –N option tells fsck to take no action and to display what it would normally do without doing it.
The –C option displays a text-mode progress indicator of the check process.
</pre>
<pre>
2) The correct answer is <strong>A</strong>.
This utility does not report how long a filesystem has been mounted.
</pre>
<pre>
3) The correct answer is <strong>D</strong>. The journal of a journaling filesystem records pending operations,
resulting in quicker disk checks after an uncontrolled shutdown.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-104-2/index.html">Maintain the integrity of filesystems</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1104/section3.html">Целостность файловых систем</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/maintain-the-integrity-of-filesystems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create partitions and filesystems  (weight: 2)</title>
		<link>http://lpi.bezha.od.ua/create-partitions-and-filesystems/</link>
		<comments>http://lpi.bezha.od.ua/create-partitions-and-filesystems/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 15:18:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[ext2]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[fdisk]]></category>
		<category><![CDATA[mkfs]]></category>
		<category><![CDATA[mkswap]]></category>
		<category><![CDATA[reiserfs v3]]></category>
		<category><![CDATA[vfat]]></category>
		<category><![CDATA[xfs]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1277</guid>
		<description><![CDATA[Candidates should be able to configure disk partitions and then create filesystems on media such as hard disks. This includes the handling of swap partitions. Use various mkfs commands to set up partitions and create various filesystems such as ext2, &#8230; <a href="http://lpi.bezha.od.ua/create-partitions-and-filesystems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to configure disk partitions and then create filesystems on media such
as hard disks. This includes the handling of swap partitions.
</pre>
<p>Use various mkfs commands to set up partitions and create various filesystems such as</p>
<pre>
ext2, ext3, xfs, reiserfs v3, vfat
</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>
fdisk
mkfs
mkswap
</pre>
<p><a href="http://xgu.ru/wiki/%D0%91%D0%BB%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE">Блочное устройство</a> Блочное устройство представляет собой уровень абстракции, описывающий любое устройство хранения информации, которое может быть разбито на блоки определенного размера; доступ к каждому блоку осуществляется независимо от доступа к другим блокам. Такой доступ часто называют произвольным доступом. Типичные примеры блочных устройств: жёсткий диск, CD-ROM, флоппи-дисковод.</p>
<p><a href="http://xgu.ru/wiki/%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE">Символьное устройство</a> вид файла устройства в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или воображаемому, с возможностью посимвольного обмена информацией.В отличие от блочного устройства символьное устройство, как правило, не обладает возможностями произвольного доступа. В большинстве своём, чтение и запись данных в символьное устройство не буферизуется. Типичные примеры символьных устройств: стриммер, модем, телетайп или терминал.</p>
<p> Блочные и символьные устройства Linux</p>
<pre>
# ls -l  /dev/sda /dev/sdb  /dev/tty0
brw-rw---- 1 root disk 8,  0 Jan 18 12:26 /dev/sda
brw-rw---- 1 root disk 8, 16 Jan 18 12:26 /dev/sdb
crw--w---- 1 root root 4,  0 Jan 18 12:26 /dev/tty0
</pre>
<p>Первый символ <strong>b</strong> в строке указывает на блочное устройство.<br />
Первый символ <strong>c</strong> в строке указывает на символьное устройство.</p>
<p><strong>Разделы</strong><br />
Для некоторых блочных устройств, таких как дискеты, CD и DVD- диски, принято использовать одну файловую систему на всем носителе. Однако на жестких дисках больших объемов и даже на небольших USB- накопителях доступное пространство принято делить или разбивать на несколько разделов.</p>
<p><strong>Вывод информации о разделах</strong></p>
<pre>
# fdisk -l /dev/sdb
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dfbd6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        9328    74920960   83  Linux
/dev/sda2            9328        9730     3227649    5  Extended
/dev/sda5            9328        9730     3227648   82  Linux swap / Solaris
</pre>
<p>Столбцы Start и End показывают начальный и конечный цилиндры для каждого раздела.</p>
<p>Столбец Blocks показывает число блоков размером 1 килобайт (1024 байт) в разделе. Максимальное количество блоков в разделе, следовательно, равняется половине произведения числа цилиндров (End + 1 &#8211; Start) на число секторов в цилиндре.</p>
<p>Поле Id указывает на предполагаемое использование раздела.</p>
<pre>
Тип 82 – файл подкачки.
Тип 83 – раздел для хранения информации.
</pre>
<p>Существует около 100 различных типов томов.</p>
<p><strong>Создание разделов с помощью команды fdisk</strong></p>
<pre>
# fdisk  /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):
</pre>
<p>Помощь в fdisk</p>
<pre>
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
</pre>
<p>Просмотр существующей таблицы разделов</p>
<pre>
Command (m for help): p

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          13      104391   83  Linux
/dev/sdb2              14         523     4096575   82  Linux swap / Solaris
/dev/sdb3             524       14593   113017275   83  Linux
</pre>
<p>Создание первого раздела</p>
<pre>
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-14593, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-14593, default 14593): 100M
</pre>
<p>Проверяем</p>
<pre>
Command (m for help): p

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
</pre>
<p> Создание расширенного раздела</p>
<pre>
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (101-14593, default 101):
Using default value 101
Last cylinder, +cylinders or +size{K,M,G} (101-14593, default 14593):
Using default value 14593
</pre>
<p>Проверяем</p>
<pre>
Command (m for help): p

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
/dev/sdb2             101       14593   116415022+   5  Extended
</pre>
<p>Создание раздела подкачки</p>
<pre>
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (101-14593, default 101):
Using default value 101
Last cylinder, +cylinders or +size{K,M,G} (101-14593, default 14593): +256

Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap / Solaris)
</pre>
<p>Большинство больших дисков, использующих LBA, имеют 255 головок на цилиндр и 63 сектора в дорожке, что составляет 16065 секторов или 8225280 байт на цилиндр. 8 Миб в цилиндре = 8*256 =2048</p>
<p>Проверяем</p>
<pre>
Command (m for help): p

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
/dev/sdb2             101       14593   116415022+   5  Extended
/dev/sdb5             101         357     2064321   82  Linux swap / Solaris
</pre>
<p>Создание основного раздела Linux на 20 ГиБ</p>
<pre>
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (358-14593, default 358):
Using default value 358
Last cylinder, +cylinders or +size{K,M,G} (358-14593, default 14593): +20480M
</pre>
<p>Создание основного раздела Linux на 10 ГиБ</p>
<pre>
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First sector (47697048-234436544, default 47697048):
Using default value 47697048
Last sector, +sectors or +size{K,M,G} (47697048-234436544, default 234436544): +10240M
</pre>
<p>Проверяем</p>
<pre>
Command (m for help): p

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63     1606499      803218+  83  Linux
/dev/sdb2         1606500   234436544   116415022+   5  Extended
/dev/sdb5         1606563     5735204     2064321   82  Linux swap / Solaris
/dev/sdb6         5735268    47696984    20980858+  83  Linux
/dev/sdb7        47697048    68668568    10485760+  83  Linux
</pre>
<p>Изменим последний раздел на <a href="http://ru.wikipedia.org/wiki/FAT32">FAT32</a></p>
<pre>
Command (m for help): t
Partition number (1-7): 7
Hex code (type L to list codes): b
Changed system type of partition 7 to b (W95 FAT32)
</pre>
<p>Hex code (type L to list codes): L</p>
<pre>
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1
</pre>
<p>Проверяем</p>
<pre>
Command (m for help): p

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63     1606499      803218+  83  Linux
/dev/sdb2         1606500   234436544   116415022+   5  Extended
/dev/sdb5         1606563     5735204     2064321   82  Linux swap / Solaris
/dev/sdb6         5735268    47696984    20980858+  83  Linux
/dev/sdb7        47697048    68668568    10485760+   b  W95 FAT32
</pre>
<p>Сохранение таблицы разделов<br />
До настоящего времени мы редактировали таблицу разделов в оперативной памяти.<br />
Можно использовать команду <strong>q</strong> для выхода без сохранения изменений.<br />
Можно использовать <strong>d</strong> для удаления одного или более разделов и переопределить их заново.<br />
Если все сделано верно, используем <strong>v</strong> для проверки, а затем <strong>w</strong>, чтобы сохранить новую таблицу разделов и выйти.</p>
<pre>
Command (m for help): v
Remaining 165773327 unallocated 512-byte sectors

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
</pre>
<p>В отличие от некоторых других операционных систем, для того, чтобы увидеть эти изменения, не всегда необходима перезагрузка. Перезагрузка может потребоваться, например, если раздел /dev/hda3 переназначается в /dev/hda2 из-за, того, что раздел /dev/hda2 был удален. Если перезагрузка необходима, fdisk сообщит вам об этом.</p>
<pre>
# fdisk -l /dev/sdb

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f800100

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         100      803218+  83  Linux
/dev/sdb2             101       14593   116415022+   5  Extended
/dev/sdb5             101         357     2064321   82  Linux swap / Solaris
/dev/sdb6             358        2969    20980858+  83  Linux
/dev/sdb7            2970        4275    10485760+   b  W95 FAT32
</pre>
<p><strong>Типы файловых систем</strong></p>
<p>Linux поддерживает несколько различных типов файловых систем. Каждая имеет свои достоинства, недостатки и отличительные черты. Важное свойство файловой системы – журналирование – позволяет быстро восстановить систему после сбоя. Как правило, <a href="http://ru.wikipedia.org/wiki/%D0%96%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D0%B0%D1%8F_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0">журналируемые системы</a> предпочтительнее нежурналируемых, если у вас есть выбор. Ниже приведен краткий обзор типов файловых систем, которые необходимо знать для экзамена LPI.</p>
<p><a href="http://ru.wikipedia.org/wiki/Ext2"><strong>ext2</strong></a><br />
Файловая система ext2 (также известная как вторая расширенная файловая система) разработана для устранения недостатков в системе Minix, использовавшейся в ранних версиях Linux. Она широко использовалась в Linux в течение длительного времени. Ext2 не журналируется и в значительной степени вытеснена ext3.</p>
<p><a href="http://ru.wikipedia.org/wiki/Ext3"><strong>ext3</strong></a><br />
Файловая система ext3 дополняет возможности стандартной ext2 журналированием и поэтому представляет собой эволюционное развитие очень стабильной файловой системы. Она обеспечивает разумную производительность в большинстве ситуаций и продолжает совершенствоваться. Поскольку она представляет собой расширенный вариант системы ext2, есть возможность преобразовывать систему ext2 в ext3 и, в случае необходимости, обратно.</p>
<p><a href="http://ru.wikipedia.org/wiki/Ext4"><strong>ext4</strong></a><br />
Fourth Extended File System (четвёртая версия расширенной файловой системы), сокр. ext4, или ext4fs — журналируемая файловая система, используемая в ОС с ядром Linux. Основана на файловой системе ext3.<br />
Основной особенностью стало увеличение максимального объёма одного раздела диска до 1 эксабайта (260 байт) при размере блока 4Kb, и увеличение размера одного файла до 16 терабайт. Кроме того, в ext4 представлен механизм пространственной (extent) записи файлов (новая информация добавляется в конец заранее выделенной по соседству области файла), уменьшающий фрагментацию и повышающий производительность. В Ubuntu начиная с версии 9.10, ext4 стала ФС по умолчанию. <a href="http://habrahabr.ru/blogs/hi/80861/">Google переходит на ext4</a></p>
<p><a href="http://ru.wikipedia.org/wiki/ReiserFS"><strong>ReiserFS</strong></a><br />
ReiserFS – это файловая система, основанная на B-дереве, с очень хорошими рабочими характеристиками, особенно для большого числа маленьких файлов. ReiserFS хорошо масштабируется и является журналируемой.</p>
<p><a href="http://ru.wikipedia.org/wiki/Reiser4"><strong>ReiserFS4</strong></a><br />
Reiser4 — 4-я версия журналируемой файловой системы ReiserFS, разработанной специально для Linux (хотя может использоваться и в других ОС) компанией Namesys под руководством <a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B9%D0%B7%D0%B5%D1%80,_%D0%93%D0%B0%D0%BD%D1%81">Ганса Рейзера</a>. Система представлена в 2004 году и включает в себя такие современные технологии как задержка выделения пространства, встроенную возможность кодирования и сжатия данных, транзакции. Несмотря на арест Ганса Рейзера и прекращения активности компании Namesys[1] разработка Reiser4 продолжается русским программистом Эдуардом Шишкиным. <a href="http://habrahabr.ru/blogs/linux/108629/">Интервью с разработчиком reiser4 Эдуардом Шишкиным</a>.</p>
<p><a href="http://ru.wikipedia.org/wiki/XFS"><strong>XFS</strong></a><br />
XFS – журналируемая файловая система. Она имеет ряд эффективных функций и оптимизирована для масштабирования. XFS активно кэширует перемещаемую информацию в оперативной памяти, поэтому при использовании этой системы рекомендуется иметь источник бесперебойного питания.</p>
<p><a href="http://ru.wikipedia.org/wiki/VFAT#VFAT"><strong>vfat</strong></a><br />
Эта файловая система (также известная как FAT32) не является журналируемой и имеет множество недостатков по сравнению с файловыми системами, используемыми Linux. Она применяется для обмена данными между системами Windows и Linux, поскольку читается обеими.</p>
<p><strong>Создание файловых систем</strong><br />
Для создания файловых систем в Linux используется команда <strong>mkfs</strong>.<br />
Для создания раздела подкачки – команда <strong>mkswap</strong>.<br />
Команда mkfs фактически является интерфейсом доступа к целому ряду команд, специфичных для конкретных файловых систем, например, mkfs.ext3 для ext3, mkfs.reiserfs для ReiserFS.</p>
<p>Поддержка каких файловых систем имеется в вашей системе?<br />
Чтобы это выяснить, используйте команду ls /sbin/mk*</p>
<pre>
# ls /sbin/mk*
/sbin/mkdosfs      /sbin/mkfs.ext3     /sbin/mkfs.reiserfs
/sbin/mke2fs       /sbin/mkfs.ext4     /sbin/mkfs.vfat
/sbin/mkfs         /sbin/mkfs.ext4dev  /sbin/mkfs.xfs
/sbin/mkfs.bfs     /sbin/mkfs.jfs      /sbin/mkhomedir_helper
/sbin/mkfs.btrfs   /sbin/mkfs.minix    /sbin/mkreiserfs
/sbin/mkfs.cramfs  /sbin/mkfs.msdos    /sbin/mkswap
/sbin/mkfs.ext2    /sbin/mkfs.ntfs
</pre>
<p><strong>Создание файловой системы ext3</strong></p>
<pre>
# mkfs -t ext3 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
50288 inodes, 200804 blocks
10040 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
7184 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
</pre>
<p>Полезная опция, используемая при создании ext2 и ext3 – опция -L с именем, которая назначает метку тому. Метку можно использовать при монтировании файловой системы вместо имени устройства; это обеспечивает определенный уровень изоляции в отношении изменений, который необходимо отразить в различных управляющих файлах. Для просмотра и установки метки на существующую систему ext2 или ext3 используется команда e2label. Длина метки ограничена 16 символами.</p>
<p><strong>Создание файловой системы ext4</strong></p>
<pre>
# mkfs.ext4 /dev/sdb6
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1313760 inodes, 5245214 blocks
262260 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
161 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000

Writing inode tables: done
Creating journal (32768 blocks):
done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
</pre>
<p><strong>Создание файловой системы ReiserFS</strong></p>
<pre>
# mkfs -t reiserfs /dev/sdb8
mkfs.reiserfs 3.6.21 (2009 www.namesys.com)

A pair of credits:
Lycos Europe  (www.lycos-europe.com)  had  a  support  contract  with  us  that
consistently came in just when we would otherwise have missed payroll, and that
they kept doubling every year. Much thanks to them.

Edward Shishkin wrote the encryption and compression  file plugins,  and the V3
journal relocation code.

Guessing about desired format.. Kernel 2.6.35-22-generic-pae is running.
Format 3.6 with standard journal
Count of blocks on the device: 2621744
Number of blocks consumed by mkreiserfs formatting process: 8292
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: c8d4ec0f-806f-4545-adba-81887866bd78
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
        ALL DATA WILL BE LOST ON '/dev/sdb8'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
ReiserFS is successfully created on /dev/sdb8.
</pre>
<p>Для задания метки тома используйте -l (или опцию --label с именем). Для добавления или просмотра метки к существующей системе ReiserFS используется команда reiserfstune. Максимальное число символов в метке – 16.</p>
<p><strong>Создание файловой системы XFS</strong></p>
<pre>
# mkfs -t xfs /dev/sdb9
meta-data=/dev/sdb9              isize=256    agcount=4, agsize=66266 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=265064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
</pre>
<p>Для задания метки тома в системе XFS используется опция -L с именем. Для добавления метки к существующей файловой системе XFS используется команда xfs_admin с опцией -L. Для просмотра метки используется команда xfs_admin с опцией -l. В отличие от ext2, ext3 и ReiserFS максимальное число символов в метке составляет 12.</p>
<p><strong>Создание файловой системы vfat</strong></p>
<pre>
# mkfs -t vfat /dev/sdb7
mkfs.vfat 3.0.9 (31 Jan 2010)
</pre>
<p>Метка тома в системе FAT32 назначается с помощью опции -n. Команда e2label отображает или устанавливает метку тома в системе vfat, а также в разделах ext. Длина метки ограничена 16 символами.</p>
<p><strong>Создание файла подкачки</strong></p>
<pre>
# mkswap /dev/sdb5
Setting up swapspace version 1, size = 2064316 KiB
no label, UUID=9ac6010d-5443-4ba5-9b1d-289ad2023ed2
</pre>
<p>Активировать файл подкачки</p>
<pre>
# swapon /dev/sdb5
</pre>
<p>Посмотреть результат</p>
<pre>
# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sdb5                               partition       2064316 0       -1
</pre>
<p>Отключить swap</p>
<pre>
# swapoff /dev/sdb5
</pre>
<p><strong>Вопросы LPI-I</strong> ( приблизительные )</p>
<pre>
1) Which of following commands can be used to create an ext2
A. ext2fs
B. mke2fs
C. mkfs.e2fs
D. mkfs.ext2
</pre>
<pre>
2) You run Linux’s fdisk and modify your partition layout. Before exiting the program, you
realize that you’ve been working on the wrong disk. What can you do to correct this problem?
A. Nothing; the damage is done, so you’ll have to recover data from a backup.
B. Type w to exit fdisk without saving changes to disk.
C. Type q to exit fdisk without saving changes to disk.
D. Type u repeatedly to undo the operations you’ve made in error.
</pre>
<pre>
3) What does the following command accomplish?
# mkfs -t ext2 /dev/sda4
A. It sets the partition table type code for /dev/sda4 to ext2.
B. It converts a FAT partition into an ext2fs partition without damaging the partition’s
existing files.
C. It creates a new ext2 filesystem on /dev/sda4, overwriting any existing filesystem
and data.
D. Nothing; the -t option isn’t valid, and so it causes mkfs to abort its operation.
</pre>
<pre>
4) Which of the following best summarizes the differences between DOS’s FDISK and
Linux’s fdisk?
A. Linux’s fdisk is a simple clone of DOS’s FDISK but written to work from Linux rather
than from DOS or Windows.
B. The two are completely independent programs that accomplish similar goals, although
Linux’s fdisk is more flexible.
C. DOS’s FDISK uses GUI controls, whereas Linux’s fdisk uses a command-line interface,
but they have similar functionality.
D. Despite their similar names, they’re completely different tools—DOS’s FDISK handles
disk partitioning, whereas Linux’s fdisk formats floppy disks.
</pre>
<pre>
5) What is an advantage of a journaling filesystem over a conventional (non-journaling)
filesystem?
A. Journaling filesystems are older and better tested than non-journaling filesystems.
B. Journaling filesystems never need to have their filesystems checked with fsck.
C. Journaling filesystems support Linux ownership and permissions; non-journaling filesystems don’t.
D. Journaling filesystems require shorter disk checks after a power failure or system crash.
</pre>
<p><strong>Ответы</strong></p>
<pre>
1) The correct answer is <strong>B</strong> and <strong>D</strong>.
ext2 filesystem can be create with either mke2fs or mkfs.ext2 commands.
</pre>
<pre>
2) The correct answer is <strong>C</strong>. Linux’s fdisk doesn’t write changes to disk until
you exit the program by typing w.
Typing q exits without writing those changes, so typing q in this situation will avert disaster.
Typing w would be precisely the wrong thing to do.
Typing u would do nothing useful because it’s not an undo command.
</pre>
<pre>
3) The correct answer is <strong>C</strong>. The mkfs command creates a new filesystem,
overwriting any existing data and therefore making existing files inaccessible. This command
doesn’t set the partition type code in the partition table. The -t ext2 option tells mkfs to
create an ext2 filesystem; it’s a perfectly valid option.
</pre>
<pre>
4) The correct answer is <strong>B</strong>. Although they have similar names and purposes,
Linux’s fdisk isn’t modeled after DOS’s FDISK. DOS’s FDISK does not have GUI controls. Linux’s
fdisk does not format floppy disks.
</pre>
<pre>
5)  The correct answer is <strong>D</strong>. The journal of a journaling filesystem records pending operations,
resulting in quicker disk checks after an uncontrolled shutdown.Contrary to option A, journaling
filesystems are, as a class, newer than non-journaling filesystems; in fact, the journaling ext3fs
is built upon the non-journaling ext2fs. Although disk checks are quicker with journaling filesystems
than with non-journaling filesystems, journaling filesystems do have fsck utilities, and these may
still need to be run from time to time. All Linux native filesystems support Linux ownership and
permissions; this isn’t an advantage of journaling filesystems, contrary to option C.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/tutorials/l-lpic1104/section2.html">Creating partitions and filesystems</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1104/section2.html">Создание разделов и файловых систем</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/create-partitions-and-filesystems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design hard disk layout  (weight: 2)</title>
		<link>http://lpi.bezha.od.ua/design-hard-disk-layout/</link>
		<comments>http://lpi.bezha.od.ua/design-hard-disk-layout/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 17:01:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[/home]]></category>
		<category><![CDATA[/var]]></category>
		<category><![CDATA[mount points]]></category>
		<category><![CDATA[partitions]]></category>
		<category><![CDATA[swap]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1218</guid>
		<description><![CDATA[Candidates should be able to design a disk partitioning scheme for a Linux system. Allocate filesystems and swap space to separate partitions or disks. Tailor the design to the intended use of the system. Ensure the /boot partition conforms to &#8230; <a href="http://lpi.bezha.od.ua/design-hard-disk-layout/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>Candidates should be able to design a disk partitioning scheme for a Linux system.
Allocate filesystems and swap space to separate partitions or disks.
Tailor the design to the intended use of the system.
Ensure the /boot partition conforms to the hardware architecture requirements for booting.</pre>
<p>The following is a partial list of the used files, terms and utilities:</p>
<pre>/
/var
/home
swap space
mount points
partitions</pre>
<p><a href="http://ru.wikipedia.org/wiki/FHS">FHS</a> — сокращение от Filesystem Hierarchy Standard, что в переводе c английского означает «Стандарт иерархии файловой системы». Этот стандарт принят для унификации местонахождения файлов и директорий с общим назначением в файловой системе ОС UNIX.</p>
<p>/</p>
<pre>Корневой раздел</pre>
<p>/home</p>
<pre>В этом месте должна размещаться вся личная информация пользователей системы.
Почему должна? Потому что владелец компьютера может хранить свою личную информацию в любом
понравившемся ему месте.В целях безопасности самой операционной системы и пользовательских данных
хранить последние строго рекомендуется в директории /home. Для получения более высокой надежности
операционной системы и сохранности пользовательской информации директорию /home рекомендуется
выделить в отдельный раздел жесткого диска.</pre>
<p>/var</p>
<pre>Это каталог для часто меняющихся данных. Здесь находятся журналы операционной системы, системные
log-файлы, cache-файлы и т. д.</pre>
<p>Про остальные разделы можно почитать в статье <a href="http://itshaman.ru/articles/10/directory-linux">&#8220;Для чего нужен каждый каталог в Linux&#8221;</a></p>
<pre>
Some directories — /etc, /bin, /sbin, /lib, and /dev—should never be placed on separate partitions.
These directories host critical system configuration files or files without which a Linux system
can’t function.
</pre>
<p><strong>Partition type codes</strong></p>
<pre>
0x06 is reserved for a certain type of File Allocation Table (FAT) partition
0x82 denotes a Linux swap partition
0x83 indicates a Linux filesystem partition
</pre>
<p><strong>Геометрия жесткого диска</strong><br />
Жесткий диск разбит на сектора по 512 байт. Все сектора на пластине жесткого диска, которые могут быть прочитаны без перемещения головки, называются трэками . Диски обычно имеют более одной пластины. Набор дорожек разных пластин, которые могут быть прочитаны без перемещения головок называется цилиндром. Геометрия жесткого диска выражается в цилиндрах, дорожкахна цилиндр и секторах на дорожке.</p>
<p><strong><a href="http://ru.wikipedia.org/wiki/CHS">CHS</a></strong> (от англ. Cylinder, Head, Sector) — система адресации сектора (как минимальной единицы в операции чтения(записи)) дисковых накопителей основанная на использовании физических адресов геометрии диска.</p>
<p>Ограничения на возможные значения каждой из этих величин, использовавшиеся операционной системой, привели к тому, что указанные в BIOS параметры геометрии диска пришлось преобразовывать, чтобы появилась возможность работы с большими дисками. В конце концов и этих методов стало не достаточно. Большинство последних разрабатываемых технологий жестких дисков могут использоваться только с логической адресации блоков (LBA &#8212; logical block addressing) , так что физические единицы геометрии CHS все менее важны и отображаемая геометрия может быть не совсем верна или вообще не иметь связи со структурой современных дисков. Диски больших размеров, которые используются сегодня, работают с расширением <a href="http://ru.wikipedia.org/wiki/LBA">LBA</a>, известным как LBA48 и отличающимся тем что на нумерацию секторов резервируется до 48 бит.</p>
<p><strong>Разделы</strong><br />
Существует три вида разделов: primary (основной), logical (логический), и extended (расширенный).	The partition table (Таблица разделов) расположена в главной загрузочной записи (master boot record &#8212; MBR) диска. MBR это первый сектор диска, так что таблица разделов не очень большая его часть. Это ограничивает количество основных разделов числом 4. Когда требуется более четырех разделов, а это бывает часто, один из основных разделов должен быть определен как расширенный. Диск может содержать только один расширенный раздел. Расширенный раздел это не более чем контейнер для логических разделов.</p>
<p>В Linux может быть от 1 до 4 основных и расширенных разделов, то есть dev hda может иметь четыре основных раздела: /dev/hda1, /dev/hda2, /dev/hda3 и /dev/hda4. Или оно может иметь один основной раздел /dev/hda1 и один расширенный /dev/hda2. Если определены логические разделы, то их нумерация начинается с 5, то есть первый логический раздел на /dev/hda будет нумероваться /dev/hda5, даже если на диске основного раздела нет, а есть только расширенный (/dev/hda1).</p>
<p>Просмотр разделов с помощью fdisk</p>
<pre># fdisk -l
Диск /dev/sda: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dfbd6

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *           1        9328    74920960   83  Linux
/dev/sda2            9328        9730     3227649    5  Расширенный
/dev/sda5            9328        9730     3227648   82  Linux своп / Solaris</pre>
<p>Просмотр разделов с помощью parted</p>
<pre># parted /dev/sda
GNU Parted 2.3
Использование /dev/sda
Добро пожаловать в GNU Parted! Наберите 'help' для получения списка команд.
(parted) print all
Модель: ATA SAMSUNG HD082GJ (scsi)
Диск /dev/sda: 80,0GB
Размер сектора (логический/физический): 512B/512B
Таблица разделов: msdos

Число  Начало  Конец   Размер  Тип       Файловая система  Флаги
 1     1049kB  76,7GB  76,7GB  primary   ext4              загрузочный
 2     76,7GB  80,0GB  3305MB  extended
 5     76,7GB  80,0GB  3305MB  logical   linux-swap(v1)</pre>
<p><strong>Вопросы по LPI</strong> (приблизительные)</p>
<pre>1) You’ve just installed Linux on a new computer with a single SATA hard disk. What device
identifier will refer to the disk?
A. /dev/sda
B. /dev/sda or /dev/hda
C. /dev/hda
D. C:</pre>
<pre>2) Typing fdisk -l /dev/hda on an x86 Linux computer produces a listing of four partitions: /dev/hda1,
/dev/hda2, /dev/hda5, and /dev/hda6. Which of the following is true?
A. The disk contains two primary partitions and two extended partitions.
B. Either /dev/hda1 or /dev/hda2 is an extended partition.
C. The partition table is corrupted; there should be a /dev/hda3 and a /dev/hda4 before /dev/hda5.
D. If you add a /dev/hda3 with fdisk, /dev/hda5 will
become /dev/hda6 and /dev/hda6 will become /dev/hda7.</pre>
<pre>3) A new Linux administrator plans to create a system with separate /home, /usr/local,
and /etc partitions. Which of the following best describes this configuration?
A. The system won’t boot because /etc contains configuration files necessary
to mount non-root partitions.
B. The system will boot, but /usr/local won’t be available because mounted partitions
must be mounted directly off their parent partition, not in a subdirectory.
C. The system will boot only if the /home partition is on a separate
physical disk from the /usr/local partition.
D. The system will boot and operate correctly, provided each partition
is large enough for its intended use.</pre>
<pre>4) Which of the following directories is most likely to be placed on its own hard disk partition?
A. /bin
B. /sbin
C. /mnt
D. /home</pre>
<pre>5) You discover that an x86 hard disk has partitions with type codes of 0x0f, 0x82, and 0x83.
Assuming these type codes are accurate, what can you conclude about the disk?
A. The disk holds a partial or complete Linux system.
B. The disk holds DOS or Windows 9x/Me and Windows NT/200x/XP installations.
C. The disk holds a FreeBSD installation.
D. The disk is corrupt; those partition type codes are incompatible.</pre>
<pre>6) What mount point should you associate with swap partitions?
A. /
B. /swap
C. /boot
D. None</pre>
<pre>
7) How many primary partitions can you have on a hard disk?
A. 4
B. 8
C. 16
D. 32
</pre>
<pre>
8) You are planning a new Linux installation with separete partitions for /, /boot, /tmp, /usr
Which of the folowing file system will be the large?
A. /
B. /boot
C. /tmp
D. /usr
</pre>
<p>Ответы</p>
<pre>1) The correct answer is <strong>B</strong>.  SATA disks are usually handled by Linux’s SCSI subsystem and so
are referred to as /dev/sdx;Some drivers handle these disks as if they were PATA disks,
and so refer to them as /dev/hdx. Thus, option B is correct.
Option D (C:) is how Windows would likely refer to the first partition on the disk,
but Linux doesn’t use this style of disk identifier.</pre>
<pre>2) The correct answer is <strong>B</strong>. Logical partitions are numbered 5 and up, and they reside in an
extended partition witha number between 1 and 4. Therefore, one of the first two partitions must be
an extended partition that houses partitions 5 and 6. Because logical partitions are numbered starting
at 5, their numbers won’t change if /dev/hda3 is subsequently added. The disk holds one primary,
one extended, and two logical partitions.</pre>
<pre>3) The correct answer is <strong>A</strong>. The /etc/fstab file contains the mapping of partitions
to mount points, so /etc must be an ordinary directory on the root partition,
not on a separate partition. Options B and C describe restrictions that don’t exist.
Option D would be correct if /etc were not a separate partition.</pre>
<pre>4) The correct answer is <strong>D</strong>. The /home directory is frequently placed on its own
partition in order to isolate it from the rest of the system and sometimes to enable use of a
particular file-system or file-system mount options.
The /bin and /sbin directories should never be split off from the root (/) filesystem because
they contain critical executable files that must be accessible in order todo the most basic work,
including mounting filesystems.
The /mnt directory often contains subdirectories used for mounting floppy disks, CD-ROMs, and other
removable media or may be used for this purpose itself. It’s seldom used to directly access hard disk
partitions,although it can be used for this purpose.</pre>
<pre>5) The correct answer is <strong>A</strong>. The 0x0f partition type code is one of two valid partition type
codes for an extended partition. (The other is 0x05.) The 0x82 code refers to a Linux swap partition,
whereas 0x83 denotes a Linux filesA. The 0x0f partition type code is one of two valid partition type
codes for an extended partition. (The other is 0x05.) The 0x82 code refers to a Linux swap partition,
whereas 0x83 denotes a Linux filesystem partition. Thus, it appears that this disk holds Linux
partitions. Windows 9x/Me, Windows NT/200x/XP, and FreeBSD all use other partition type codes
for their partitions. Partitions exist, in part, to enable different OSs to store their
dataside-by-side on the same disk, so mixing several partition types (even for different OSs)
on one disk doesn't indicate disk corruption.</pre>
<pre>6) The correct answer is <strong>D</strong>. Swap partitions aren’t mounted in the way filesystems are, so they
have no associated mount points.</pre>
<pre>
7) The correct answer is <strong>A</strong>. A hard disk can have up to 4 primary partitions, or 3 primary partitions
and 1 extended partition.
</pre>
<pre>
8) The correct answer is <strong>D</strong>.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-102-1/">Hard disk layout</a><br />
<a href="https://www.ibm.com/developerworks/ru/edu/l-lpic1102/section2.html">Схема жесткого диска</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/design-hard-disk-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change runlevels and shut down or reboot system (weight: 3)</title>
		<link>http://lpi.bezha.od.ua/change-runlevels/</link>
		<comments>http://lpi.bezha.od.ua/change-runlevels/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 21:09:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[init]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[telinit]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1169</guid>
		<description><![CDATA[Candidates should be able to manage the runlevel of the system. This objective includes changing to single user mode, shutdown or rebooting the system. Candidates should be able to alert users before switching runlevel and properly terminate processes. This objective &#8230; <a href="http://lpi.bezha.od.ua/change-runlevels/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to manage the runlevel of the system.
This objective includes changing to single user mode, shutdown or rebooting the system.
Candidates should be able to alert users before switching runlevel and properly terminate processes.
This objective also includes setting the default runlevel.
</pre>
<p>The following is a partial list of the used files, terms and utilities:</p>
<pre>
/etc/inittab
shutdown
init
/etc/init.d
telinit
</pre>
<p><a href="http://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F"> Уровни Выполнения </a></p>
<pre>
<strong>0</strong> — Выполняются действия по выключению системы.
<strong>1</strong> — Однопользовательский режим.
Предназначен для различных административных действий по восстановлению системы.
На этом уровне выполнения система полностью сконфигурирована, но не запущен ни один сервис,
а из пользователей может работать только один root.
<strong>2</strong> — В Debian используется как многопользовательский режим с графическим режимом.
В остальных дистрибутивах данный уровень не определен.
<strong>3</strong> — Многопользовательский режим с поддержкой сети.
<strong>4</strong> — В Slackware Linux используется для графического входа в систему.
В RedHat и SuSE Linux не сконфигурирован.
<strong>5</strong> — В RedHat и SuSE Linux используется для графического входа в систему.
В Slackware Linux не сконфигурирован.
<strong>6</strong> — выполняются действия по перезагрузке системы.
</pre>
<p>Посмотреть текущий run level</p>
<pre>
# who -r
run-level 3  Jan  4 18:32                   last=S
</pre>
<p>или</p>
<pre>
# runlevel
N 3
</pre>
<p>N &#8211; это предыдущий уровень. В моем случае уровень не менялся. Изменим уровень</p>
<pre>
# init 5
#  runlevel
3 5
</pre>
<p>3 &#8211; предыдущий уровень. 5 &#8211; текущий уровень.</p>
<p>Уровень по умолчанию CentOS 5.3</p>
<pre>
# grep :initdefault: /etc/inittab
id:3:initdefault:
</pre>
<p>Уровень по умолчанию Debian 5.0</p>
<pre>
# grep :initdefault: /etc/inittab
id:2:initdefault:
</pre>
<p>Если вы внесли изменения в файле /etc/inittab перечитать конфигурацию</p>
<pre>
# telinit q
</pre>
<p><strong>Изменение уровня выполнения на запущенной системе</strong><br />
Перейти в single режим</p>
<pre>
# init 1
</pre>
<p>Перезагрузить систему</p>
<pre>
# init6
</pre>
<p>Перезагрузка системы с помощью команды shutdown</p>
<pre>
# shutdown now
</pre>
<p>Опции</p>
<pre>
-r reboots the system
-H halts it (terminates operation but doesn’t power it off)
-P powers it off
</pre>
<p>Чтобы предупредить пользователям о предстоящей перезагрузке или выключении системы</p>
<pre>
# shutdown -h +15 “system going down for maintenance”
</pre>
<p>Если вы передумали)</p>
<pre>
# shutdown -c “never mind”
</pre>
<p># man halt<br />
NAME<br />
halt, reboot, poweroff &#8211; stop the system.<br />
-n     Don&#8217;t sync before reboot or halt. Note that the kernel and storage drivers may still sync.<br />
-w     Don&#8217;t actually reboot or halt but only write the wtmp record (in the /var/log/wtmp file).<br />
-d     Don&#8217;t write the wtmp record. The -n flag implies -d.<br />
-f     Force halt or reboot, don&#8217;t call shutdown(8).<br />
-i     Shut down all network interfaces just before halt or reboot.<br />
-h     Put all harddrives on the system in standby mode just before halt or poweroff.<br />
-p     When halting the system, do a poweroff. This is the default when halt is called as poweroff.</p>
<p><strong>Управление Runlevel</strong><br />
Какие сервисы запускать на различных уровнях выполнения.</p>
<pre>
0 - /etc/rc.d/rc0.d
1 - /etc/rc.d/rc1.d
2 - /etc/rc.d/rc2.d
3 - /etc/rc.d/rc3.d
4 - /etc/rc.d/rc4.d
5 - /etc/rc.d/rc5.d
6 - /etc/rc.d/rc6.d
</pre>
<p> В каталогах уровня выполнения находятся символические ссылки вида</p>
<pre>
lrwxrwxrwx 1 root root 15 Nov 24 18:12 S85httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Dec 13 20:41 K87named -> ../init.d/named
</pre>
<p>S &#8211; Start, сервис будет запущен<br />
K &#8211; Kill, сервис будет остановлен<br />
Число &#8211; последовательность загрузки сервиса</p>
<p><strong>Управление сервисами CentOS</strong><br />
На каких уровнях запущены сервисы</p>
<pre>
#  chkconfig --list
</pre>
<p>На каких уровнях установлен httpd</p>
<pre>
 chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
</pre>
<p>Изменить уровень</p>
<pre>
# chkconfig --level 2345 httpd on
</pre>
<p>Установить на всех уровнях</p>
<pre>
# chkconfig httpd on
</pre>
<p>Отключить httpd при загрузке</p>
<pre>
# chkconfig httpd off
</pre>
<p>Псевдографический инструмент для редактирования уровней выполнения -ntsysv<br />
Редактировать runlevel 3</p>
<pre>
ntsysv --level 3
</pre>
<p><strong>Управление <a href="http://www.icefortress.ru/?p=63">сервисами Debian</a></strong><br />
Чтобы автоматически стартовал сервис, нужно выполнить</p>
<pre>
# update-rc.d apache2 defaults
Adding system startup for /etc/init.d/apache2 ...
   /etc/rc0.d/K20apache2 -> ../init.d/apache2
   /etc/rc1.d/K20apache2 -> ../init.d/apache2
   /etc/rc6.d/K20apache2 -> ../init.d/apache2
   /etc/rc2.d/S20apache2 -> ../init.d/apache2
   /etc/rc3.d/S20apache2 -> ../init.d/apache2
   /etc/rc4.d/S20apache2 -> ../init.d/apache2
   /etc/rc5.d/S20apache2 -> ../init.d/apache2
</pre>
<p>Чтобы убрать сервис из автозапуска, выполняем команду</p>
<pre>
# update-rc.d -f apache2 remove
Removing any system startup links for /etc/init.d/apache2 ...
   /etc/rc0.d/K09apache2
   /etc/rc1.d/K09apache2
   /etc/rc2.d/S91apache2
   /etc/rc3.d/S91apache2
   /etc/rc4.d/S91apache2
   /etc/rc5.d/S91apache2
   /etc/rc6.d/K09apache2
</pre>
<p>Показывать список состояния всех стартовых скриптов при запуске, утилита update-rc.d не умеет. Близкий аналог chkconfig в Debian утилита sysv-rc-conf</p>
<p>Устанавливаем sysv-rc-conf</p>
<pre>
# apt-get install sysv-rc-conf
</pre>
<p>Если просто запустить из консоли sysv-rc-conf<br />
<img src="http://bezha.od.ua/wp-content/uploads/2011/01/sysv-rc-conf.png" alt="" title="sysv-rc-conf" /></p>
<p>Но можно управлять и передачей параметров через командную строку.<br />
Уровни запуска/остановки всех сервисов</p>
<pre>
# sysv-rc-conf --list
</pre>
<p>Уровень состояния конкретного сервиса</p>
<pre>
# sysv-rc-conf --list apache2
</pre>
<p>Добавить сервис в уровни загрузки 2 и 3</p>
<pre>
# sysv-rc-conf --level 23 apache2 on
</pre>
<p>Отключить ssh в уровнях 3 и 5</p>
<pre>
# sysv-rc-conf --level 35 ssh off
</pre>
<p>Если опустить параметр –level, то по умолчанию будут использоваться уровни 2, 3, 4, и 5.</p>
<p>Благодаря блогу <a href="http://proft.com.ua/2011/01/3/urovni-inicializacii-v-ubuntu-i-centos/">proft.com.ua</a> узнал о том что в Debian можно установить chkconfig и управлять сервисами как и в CentOS</p>
<pre>
# apt-get -y install chkconfig
</pre>
<p><strong>Вопросы LPI-I</strong> ( приблизительные )</p>
<pre>
1) What line in /etc/inittab would indicate that your default runlevel is 5?
A. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
B. id:5:initdefault:
C. si:5:sysinit:/etc/init.d/rcS
D. l5:5:wait:/etc/init.d/rc 5
</pre>
<pre>
2) Which runlevels are reserved by init for reboot, shutdown, and single-user mode purposes?
(Select all that apply.)
A. 0
B. 1
C. 5
D. 6
</pre>
<pre>
3) You type the following command:
$ runlevel
5 3
What can you tell about your runlevel status? (Select all that apply.)
A. The current runlevel is 5.
B. The current runlevel is 3.
C. The previous runlevel is 5.
D. The previous runlevel is 3.
</pre>
<pre>
4) A system administrator types the following command:
# shutdown -c
What is the effect of this command?
A. A previously scheduled shutdown is cancelled.
B. The system shuts down and reboots immediately.
C. The system shuts down and halts immediately.
D. The system asks for confirmation and then shuts down.
</pre>
<pre>
5) Which of the following commands may not be used instead of shutdown
in certain circumstances?
A. reboot
B. halt
C. poweroff
D. takedown
</pre>
<pre>
6) You want to change to single-user mode on a running system. What command might you
use to do this?
A. runlevel 1
B. telinit 1
C. shutdown -1
D. single-user
</pre>
<pre>
7) What does runlevel 4 do?
A. It reboots the computer.
B. It starts a multi-user system without X running.
C. It starts a multi-user system with X and an X-based login running.
D. Its purpose isn’t standardized, so it can be used for anything you like.
</pre>
<pre>
8) Which process always has a process ID of 1?
</pre>
<p><strong>Ответы</strong></p>
<pre>
1) The correct answer is <strong>B</strong>. The initdefault action specifies the default runlevel.
</pre>
<pre>
2) The correct answer is
<strong>A</strong> Runlevel 0 is the reserved runlevel for halting the system
<strong>B</strong> Runlevel 1 is reserved for single-user mode
<strong>D</strong> Runlevel 6 is reserved for rebooting
</pre>
<pre>
3) The correct answer is
<strong>B</strong> The second number is the current runlevel.
<strong>C</strong> The first number in the runlevel output is the previous runlevel
</pre>
<pre>
4) The correct answer is <strong>A</strong>. The -c option to shutdown cancels a previously scheduled shutdown.
</pre>
<pre>
5) The correct answer is <strong>D</strong>. There is no standard takedown command in Linux.
The reboot command is equivalent to shutdown -r
halt is equivalent to shutdown -H
poweroff is equivalent to shutdown -P
</pre>
<pre>
6) The correct answer is <strong>B</strong>. The telinit command is used to change runlevels;
when it’s passed the 1 parameter, telinit changes to runlevel 1, which is single-user mode.
The runlevel command displays the current runlevel but doesn’t change runlevels.
The shutdown command can’t be used to change runlevels except to runlevel 0 or 6.
There is no standard single-user command
</pre>
<pre>
7) The correct answer is <strong>D</strong>.
Runlevel 4 isn’t standardized, and most distributions don’t use it for anything specific
Option A describes runlevel 6.
Option B describes runlevel 3 on Red Hat and related distributions.
Option C describes runlevel 5 on Red Hat and related distributions.
</pre>
<pre>
8) # ps waux | grep init
root         1  0.0  0.0   2872  1672 ?        Ss   13:21   0:00 /sbin/init
</pre>
<p>Читать:<br />
<a href="http://rus-linux.net/kos.php?name=/papers/proc/Understanding_RHEL_daemons.html">Знакомимся с демонами</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/change-runlevels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boot the system (weight: 3)</title>
		<link>http://lpi.bezha.od.ua/boot-the-system/</link>
		<comments>http://lpi.bezha.od.ua/boot-the-system/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 19:54:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[/var/log/messages]]></category>
		<category><![CDATA[bootloader]]></category>
		<category><![CDATA[dmesg]]></category>
		<category><![CDATA[init]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1130</guid>
		<description><![CDATA[Candidates should be able to guide the system through the booting process. Provide common commands to the boot loader and options to the kernel at boot time. Demonstrate knowledge of the boot sequence from BIOS to boot completion. Check boot &#8230; <a href="http://lpi.bezha.od.ua/boot-the-system/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to guide the system through the booting process.
Provide common commands to the boot loader and options to the kernel at boot time.
Demonstrate knowledge of the boot sequence from BIOS to boot completion.
Check boot events in the log files.
</pre>
<p>The following is a partial list of the used files, terms and utilities:</p>
<pre>
/var/log/messages
dmesg
BIOS
bootloader
kernel
init
</pre>
<p>Вид на процесс начальной загрузки в Linux с высоты птичьего полета<br />
<img alt="" src="http://www.ibm.com/developerworks/ru/library/l-linuxboot/fig1.gif" title="Boot" class="alignnone" width="529" height="300" /></p>
<pre>
1. При первоначальной загрузке системы или при ее перезагрузке системы процессор выполняет
код, который расположен в BIOS, которая хранится в расположенной на системной плате
микросхеме энергонезависимой flash-памяти и начальный загрузчик первой ступени
загружается в оперативную память и начинается его выполнение.
</pre>
<pre>
2. Загрузчик первой ступени имеет размер менее 512 байт (один сектор), и его задачей является
загрузка начального загрузчика второй ступени.
</pre>
<pre>
3. После того, как в оперативную память загружается и начинает выполняться начальный загрузчик
второй ступени, на экране обычно отображается заставка и в память загружаются Linux. После
того как эти образы будут загружены, начальный загрузчик второй ступени передает управление
ядру и выполняется декомпрессия и инициализация ядра. На этой стадии начальный загрузчик
второй ступени проверяет аппаратное обеспечение системы, выполняет нумерацию подключенных
устройств, монтирует корневое устройство и затем загружает необходимые модули ядра.
</pre>
<pre>
4. После завершения этих задач запускается первая пользовательская программа (init) и затем
выполняется инициализация системы высокого уровня.
</pre>
<p><strong>dmesg</strong> (display message) — команда, используемая в UNIX?подобных операционных системах для вывода буфера сообщений ядра в стандартный поток вывода</p>
<pre>
# dmesg |less
# dmesg | grep sda
</pre>
<p><strong>Вопросы LPI-I </strong>( приблизительные )</p>
<pre>
1. Where might the BIOS find a boot loader?
A. RAM
B. /dev/boot
C. MBR
D. /dev/kmem
</pre>
<pre>
2. After booting, one of your hard disks doesn’t respond. What might you do to find out
what’s gone wrong?
A. Check the /var/log/diskerror log file to see what’s wrong.
B. Verify that the disk is listed in /mnt/disks.
C. Check the contents of /etc/inittab to be sure it’s mounting the disk.
D. Type dmesg | less, and peruse the output for disk-related messages.
</pre>
<pre>
3. What is the first program that Linux kernel runs once it’s booted in a normal boot process?
A. dmesg
B. init
C. startup
D. rc
</pre>
<p><strong>Ответы</strong></p>
<pre>
1. The correct answer is <strong>C</strong>. The Master Boot Record (MBR) can contain a boot loader
that is up to 512 bytes in size. If more space is required, the boot loader must load
a secondary boot loader. Although the boot loader is loaded into RAM, it’s not stored
there permanently because RAM is volatile storage.Both /dev/boot and /dev/kmem
are references to files on Linux filesystems; they’re meaningful only after the BIOS
has found a boot loader and run it and lots of other boot processes have occurred.
</pre>
<pre>
2. The correct answer is <strong>D</strong>. The kernel ring buffer, which can be viewed by typing dmesg
(piping this through less is a good supplement), contains messages from the kernel, including
those from hardware drivers. These messages may provide clue about why the disk didn’t appear
The /var/log/diskerror file is fictitious, as is /mnt/disks.
The /etc/inittab file doesn’t directly control disk access and so is unlikely to provide
useful information
</pre>
<pre>
3. The correct answer is <strong>B</strong>.Ordinarily, Linux runs init as the first program; init then runs,
via various scripts, other programs. The dmesg program is a user diagnostic and information
tool used to access the kernel ring buffer; it’s not part of the startup process. The startup
program is fictitious. The rc program is a script that init calls, typically indirectly,
during the startup sequence, but it’s not the first program the kernel runs.
</pre>
<p>Читать:<br />
<a href="http://www.ibm.com/developerworks/linux/library/l-linuxboot/index.html?S_TACT=105AGX99&#038;S_CMP=CP">Inside the Linux boot process</a><br />
<a href="http://www.ibm.com/developerworks/ru/library/l-linuxboot/">Подробности процесса загрузки Linux</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/boot-the-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manage shared libraries (weight: 1)</title>
		<link>http://lpi.bezha.od.ua/manage-shared-libraries/</link>
		<comments>http://lpi.bezha.od.ua/manage-shared-libraries/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 19:05:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[/etc/ld.so.conf]]></category>
		<category><![CDATA[ldconfig]]></category>
		<category><![CDATA[ldd]]></category>
		<category><![CDATA[LD_LIBRARY_PATH]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=1083</guid>
		<description><![CDATA[Candidates should be able to determine the shared libraries that executable programs depend on and install them when necessary. Identify shared libraries. Identify the typical locations of system libraries. Load shared libraries. The following is a partial list of the &#8230; <a href="http://lpi.bezha.od.ua/manage-shared-libraries/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to determine the shared libraries that executable programs depend on
and install them when necessary. Identify shared libraries. Identify the typical locations of
system libraries. Load shared libraries.
</pre>
<p>The following is a partial list of the used files, terms and utilities:</p>
<pre>
ldd
ldconfig
/etc/ld.so.conf
LD_LIBRARY_PATH
</pre>
<p><a href="http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0#.D0.94.D0.B8.D0.BD.D0.B0.D0.BC.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D0.B5_.D0.B1.D0.B8.D0.B1.D0.BB.D0.B8.D0.BE.D1.82.D0.B5.D0.BA.D0.B8">Динамические библиотеки</a> &#8211; Часть основной программы, которая загружается в ОС по запросу работающей программы в ходе её выполнения (Run-time), т.е. динамически (Dynamic Link Library, DLL в Windows). Один и тот же набор функций может быть использован сразу в нескольких работающих программах, из-за чего они имеют ещё одно название — библиотеки общего пользования (Shared Library). Если динамическая библиотека загружена в адресное пространство самой ОС (System Library), то единственная копия может быть использована множеством работающих с нею программ, что положительно сказывается на степени использовании ресурса ОЗУ.</p>
<p><a href="http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0#.D0.A1.D1.82.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.B8.D0.B5_.D0.B1.D0.B8.D0.B1.D0.BB.D0.B8.D0.BE.D1.82.D0.B5.D0.BA.D0.B8"> Статические библиотеки </a> &#8211; Могут быть в виде исходного текста, подключаемого программистом к своей программе на этапе написания (например, для языка Fortran существует огромное количество библиотек для решения разных задач именно в исходных текстах), либо в виде объектных файлов, присоединяемых (линкуемых) к исполняемой программе на этапе компиляции.</p>
<p>Если необходимо посмотреть какие библиотеки использует программа</p>
<pre>
# ldd /usr/bin/mc
        linux-gate.so.1 =>  (0xb76f3000)
        libgpm.so.2 => /usr/lib/libgpm.so.2 (0xb76db000)
        libslang.so.2 => /lib/libslang.so.2 (0xb75e2000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb75dd000)
        librt.so.1 => /lib/librt.so.1 (0xb75d4000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb7505000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb74eb000)
        libc.so.6 => /lib/libc.so.6 (0xb738e000)
        libdl.so.2 => /lib/libdl.so.2 (0xb738a000)
        libm.so.6 => /lib/libm.so.6 (0xb7363000)
        libpcre.so.3 => /lib/libpcre.so.3 (0xb732e000)
        /lib/ld-linux.so.2 (0xb76f4000)
</pre>
<p><a href="http://www.opennet.ru/man.shtml?topic=ldconfig&#038;category=8&#038;russian=0">ldconfig</a> &#8211; создает необходимые связки и формирует кэш динамических библиотек<br />
Если shared library устанавливаются вручную, без использования менеджеров пакетов, таких как rpm или dpkg,<br />
вы должны в ручном режиме указать системе о расположении библиотек. Необходимо добавить новые пути в файле /etc/ld.so.conf и запустить программу ldconfig &#8211; данная программа просмотрит пути и добавит их в кэш</p>
<pre>
# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
# cat /etc/ld.so.conf.d/*.conf
/usr/lib/mesa
# Multiarch support
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu
/usr/lib/alsa-lib
# libc default configuration
/usr/local/lib
</pre>
<p>Какие библиотеки сейчас находятся в кэше</p>
<pre>
# ldconfig -p | less
738 libs found in cache `/etc/ld.so.cache'
        libzephyr.so.4 (libc6) => /usr/lib/libzephyr.so.4
        libzbar.so.0 (libc6) => /usr/lib/libzbar.so.0
...
</pre>
<p>Чтобы установить  LD_LIBRARY_PATH с консоли</p>
<pre>
# export LD_LIBRARY_PATH=/usr/local/newpath:/opt/newpath
</pre>
<p><strong>Вопросы LPI-I</strong> ( приблизительные )</p>
<pre>
1) Which program is used to determine which shared libraries are used by a particular
other program?
A.ld.so
B.ldcache
C.ldd
D.ldconfig
E.libconf
</pre>
<pre>
2) Which programm is used to maintain the file /etc/ld.so.cache?
A.ld.so
B.ldcache
C.ldd
D.ldconfig
E.libconf
</pre>
<pre>
3) What is the preferred method of adding a directory to the library path for all users?
A. Modify the LD_LIBRARY_PATH environment variable in a global shell script.
B. Add the directory to the /etc/ld.so.conf file, and then type ldconfig.
C. Type ldconfig /new/dir, where /new/dir is the directory you want to add.
D. Create a symbolic link from that directory to one that’s already on the library path.
</pre>
<pre>
4) You prefer the look of GTK+ widgets to Qt widgets, so you want to substitute the GTK+
libraries for the Qt libraries on your system. How would you do this?
A. You must type ldconfig --makesubs=qt,gtk. This command substitutes the GTK+
libraries for the Qt libraries at load time.
B. You must uninstall the Qt library packages and re-install the GTK+ packages with the
--substitute=qt option to rpm or the --replace=qt option to dpkg.
C. You must note the filenames of the Qt libraries, uninstall the packages, and create
symbolic links from the Qt libraries to the GTK+ libraries.
D. You can’t easily do this; libraries can’t be arbitrarily exchanged for one another. You
would need to rewrite all the Qt-using programs to use GTK+
</pre>
<p><strong>Ответы</strong></p>
<pre>
1) The correct answer is <strong>C</strong> ldd
</pre>
<pre>
2) The correct answer is <strong>D</strong> ldconfig
</pre>
<pre>
3) The correct answer is <strong>B</strong> Add the directory to the /etc/ld.so.conf file, and type ldconfig
You must then type ldconfig to have the system update its library path cache
Although you can add a directory to the library path by altering the LD_LIBRARY_PATH
environment variable globally, this approach isn’t the preferred one
Option C simply won’t work
Option D also won’t work, although linking individual library files would work.
This method isn’t the preferred one for adding a whole directory
</pre>
<pre>
4) The correct answer is <strong>D</strong>. Libraries are selected by programmers, not by users or admin
Options A and B describe fictitious options to ldconfig, rpm, and dpkg
Option C wouldn’t work; Qt-using programs would crash when they found GTK+
libraries in place of the Qt libraries they were expecting
</pre>
<p>Читать: <a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-102-3/">Learn Linux, 101: Manage shared libraries</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/manage-shared-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian package (weight: 3)</title>
		<link>http://lpi.bezha.od.ua/dpkg/</link>
		<comments>http://lpi.bezha.od.ua/dpkg/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 17:53:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[apt-cache]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Debian package]]></category>
		<category><![CDATA[dpkg]]></category>
		<category><![CDATA[dpkg-reconfigure]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=911</guid>
		<description><![CDATA[Candidates should be able to perform package management using the Debian package tools. Install, upgrade and uninstall Debian binary packages. Find packages containing specific files or libraries which may or may not be installed. Obtain package information like version, content, &#8230; <a href="http://lpi.bezha.od.ua/dpkg/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to perform package management using the Debian package tools.
Install, upgrade and uninstall Debian binary packages.
Find packages containing specific files or libraries which may or may not be installed.
Obtain package information like version, content, dependencies, package.
</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>
etc/apt/sources.list
dpkg
dpkg-reconfigure
apt-get
apt-cache
aptitude
</pre>
<p><a href="http://ru.wikipedia.org/wiki/Dpkg">dpkg</a> — это программное обеспечение, являющееся основой системы управления пакетами в Debian. dpkg используется для установки, удаления, и получения информации о .deb пакетах. Изначально dpkg был написан на Perl, но позже основная часть была переписана на C Яном Джексоном в 1993. Название «dpkg» — это сокращение от «Debian package».</p>
<p><strong>Основы работы с менеджером пакетов dpkg</strong><br />
Установка пакета</p>
<pre>
# dpkg -i webmin_1.530_all.deb
</pre>
<p>Информация о пакете</p>
<pre>
# dpkg -s webmin
Package: webmin
Status: install ok installed
Priority: optional
Section: admin
Installed-Size: 89256
Maintainer: Jamie Cameron <jcameron@webmin.com>
Architecture: all
Version: 1.530
Provides: webmin
Depends: bash, perl, libnet-ssleay-perl, openssl, libauthen-pam-perl, libpam-runtime,
libio-pty-perl, apt-show-versions
Pre-Depends: bash, perl
Conffiles:
 /etc/pam.d/webmin 7d932afdbc1605586ab8c31de78b7dc2
Description: A web-based administration interface for Unix systems.
             Using Webmin you can configure DNS, Samba, NFS, local/remote
             filesystems and more using your web browser.  After installation,
             enter the URL https://localhost:10000/ into your browser and
             login as root with your root password.
</pre>
<p>Удаление пакета</p>
<pre>
# dpkg -r webmin
</pre>
<p>Список установленных пакетов</p>
<pre>
# dpkg -l |less
</pre>
<p>Получить список файлов принадлежащих данному пакету, а также пути, куда они были установлены. Для большинства пакетов, вы можете только указать название пакета и не беспокоиться про указания конкретной версии</p>
<pre>
# dpkg -L mc
</pre>
<p>Тем менее, некоторые пакеты могут быть доступны в нескольких версиях, поэтому вам может понадобиться указать более подробную имя пакета</p>
<pre>
# dpkg -L libparted
Package `libparted' is not installed.
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.
# dpkg -L libparted1.8-10
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libparted1.8-10
/usr/share/doc/libparted1.8-10/changelog.Debian.gz
/usr/share/doc/libparted1.8-10/copyright
/lib
/lib/libparted-1.8.so.10.0.0
/lib/libparted-1.8.so.10
</pre>
<p>К какому пакету принадлежит файл</p>
<pre>
# dpkg -S /usr/bin/nslookup
dnsutils: /usr/bin/nslookup
</pre>
<p>Иногда по файлу нельзя определить к какому пакету он принадлежит. Когда это случается необходимо предпринять определенные действия, для того чтобы определить к какому пакету принадлежит файл. Например при установке пакета программа установки пакета может создать символические ссылки, которые не будут указаны как часть пакета.</p>
<pre>
# dpkg -S /usr/bin/java
dpkg: /usr/bin/java not found.
</pre>
<p>Определяем к какому пакету принадлежит  /usr/bin/java</p>
<pre>
# which java
/usr/bin/java
# ls -la $(which java)
lrwxrwxrwx 1 root root 22 Dec 10 19:14 /usr/bin/java -> /etc/alternatives/java
</pre>
<p>Так как ссылка на /etc/alternatives</p>
<pre>
# update-alternatives --display java
java - status is auto.
 link currently points to /usr/lib/jvm/java-6-openjdk/jre/bin/java
/usr/lib/jvm/java-6-openjdk/jre/bin/java - priority 1061
 slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz
/usr/bin/gij-4.3 - priority 43
/usr/lib/jvm/java-gcj/jre/bin/java - priority 1042
Current `best' version is /usr/lib/jvm/java-6-openjdk/jre/bin/java
</pre>
<p>Finally</p>
<pre>
# dpkg -S /usr/lib/jvm/java-6-openjdk/jre/bin/java
openjdk-6-jre-headless: /usr/lib/jvm/java-6-openjdk/jre/bin/java
</pre>
<p><strong>Advanced Packaging Tool</strong><br />
<a href="http://ru.wikipedia.org/wiki/APT">APT</a>  — программа для установки, обновления и удаления программных пакетов в операционных системах Debian и основанных на них (Ubuntu, Edubuntu, ALTLinux и т. п.). Способна автоматически устанавливать и настраивать программы для UNIX-подобных операционных систем как из предварительно откомпилированных пакетов, так и из исходных кодов.</p>
<p><strong>Основы работы с apt-get</strong></p>
<p>Расположение пакетов</p>
<pre>
cat /etc/apt/sources.list
deb http://ftp.debian.org/debian lenny main contrib non-free
deb http://ftp.debian.org/debian-volatile lenny/volatile main contrib non-free
deb http://ftp.debian.org/debian-security lenny/updates main contrib non-free
</pre>
<p>Добавить репозиторий например yandex</p>
<pre>
deb http://mirror.yandex.ru/debian lenny main contrib main non-free
</pre>
<p>После редактирования файла  /etc/apt/sources.list необходимо выполнить</p>
<pre>
# apt-get update
</pre>
<p>Установка пакета</p>
<pre>
# apt-get -y install mc
</pre>
<p>Удаление пакета</p>
<pre>
# apt-get -y remove mc
</pre>
<p>Удаление пакета вместе с конфигурационными файлами</p>
<pre>
# apt-get purge mc
</pre>
<p>Удаление  пакета со всеми зависимости</p>
<pre>
# apt-get autoremove mc
</pre>
<p>Для обновления определенного пакета, необходимо повторно запустить apt-get install, перед обновлением пакета apt-get update</p>
<pre>
# apt-get install mc
</pre>
<p>Обновить все пакеты можно командой</p>
<pre>
# apt-get upgrade
</pre>
<p>Обновить дистрибутив</p>
<pre>
# apt-get dist-upgrade
</pre>
<p>Поиск необходимого пакета</p>
<pre>
# apt-cache search "linux loader"
lilo-doc - Documentation for LILO (LInux LOader)
lilo - LInux LOader - The Classic OS loader can load Linux and others
</pre>
<p>Загрузить пакет, но не устанавливать в папку (/var/cache/apt/archives)</p>
<pre>
# apt-get install -d mc
</pre>
<p>Удалить загруженные файлы</p>
<pre>
# apt-get clean
</pre>
<p><strong>Вопросы LPI-I</strong> ( приблизительные )</p>
<pre>
1) You want to install a RPM packet file foobar.rpm on a debian system. What
command would you use to convert the rpm-file into debian deb format?
A. alien --to-deb foobar.rpm
B. rpmtodeb foobar.rpm
C. rpm2deb foobar.rpm
D. pcktconv --to-deb foobar.rpm
E. pcktconv -o foobar.deb foobar.rpm
</pre>
<pre>
2) What command would you use to get a list of all installed files coming from
a debian packet named foobar?
A. dpkg -l foobar
B. dpkg -L foobar
C. dpkg -ql foobar
D. dpkg -qL foobar
E. dpkg -q --allfiles foobar
</pre>
<pre>
3) You have accidentally deleted the file /usr/lib/zlib.so on a Debian system.
Which of the following commands would help you find the package that contains zlib.so?
A. dpkg -S zlib.so
B. dpkg -r zlib.so
C. dpkg -i zlib.so
D. dpkg -l zlib.so
</pre>
<pre>
4) Version 1.5 of your favorite instant messenging client has just been released
as a Debian package. You would like to install it while automatically
un-installing any other versions.  Which dpkg command will allow you to install
a new version of a dpkg while automatically un-installing other versions?
A. dpkg --extract
B. dpkg --install
C. dpkg --new
D. dpkg --purge
</pre>
<p><strong>Ответы</strong></p>
<pre>
1) The correct answer is <strong>A</strong>
alien - Convert or install an alien binary package
alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [options] file [...]
</pre>
<pre>
2) The correct answer is <strong>B</strong>
</pre>
<pre>
3) The correct answer is <strong>A</strong>, dpkg -S will query a file to find out which package it came from.
Answer B is incorrect because dpkg -r is used to remove packages
Answer C is incorrect since dpkg -i is used to install packages
Answer D is incorrect because dpkg -l is used to list packages, not individual files.
</pre>
<pre>
4) The correct answer is <strong>B</strong>, dpkg --install will install the new version
of a dpkg while removing any previous versions.
Answer A is incorrect, because while dpkg --extract
will extract a package it will not un-install other versions.
Answer C is incorrect, because dpkg --new selects the binary format, but does not install anything.
Answer D is incorrect, dpkg --purge removes packages.
</pre>
<p>Читать: <a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-102-4/">Learn Linux, 101: Debian package management</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/dpkg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redhat Package Manager (weight: 3)</title>
		<link>http://lpi.bezha.od.ua/rpm/</link>
		<comments>http://lpi.bezha.od.ua/rpm/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 18:52:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[LPI]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Redhat Package Manager]]></category>
		<category><![CDATA[RPM]]></category>

		<guid isPermaLink="false">http://bezha.od.ua/?p=908</guid>
		<description><![CDATA[Candidates should be able to perform package management using RPM and YUM tools. Install, re-install, upgrade and remove packages using RPM and YUM. Obtain information on RPM packages such as version, status, dependencies, integrity and signatures. Determine what files a &#8230; <a href="http://lpi.bezha.od.ua/rpm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<pre>
Candidates should be able to perform package management using RPM and YUM tools.
Install, re-install, upgrade and remove packages using RPM and YUM.
Obtain information on RPM packages such as version, status, dependencies, integrity and signatures.
Determine what files a package provides, as well as find which package a specific file comes from.
</pre>
<p>The following is a partial list of the used files, terms and utilities</p>
<pre>
rpm
rpm2cpio
/etc/yum.conf
/etc/yum.repos.d/
yum
yumdownloader
</pre>
<p><a href="http://ru.wikipedia.org/wiki/RPM">RPM</a> (рекурсивный акроним RPM Package Manager — RPM — менеджер пакетов; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat) обозначает две вещи: формат пакетов программного обеспечения и программа, созданная для управления этими пакетами. Программа позволяет устанавливать, удалять и обновлять программное обеспечение.</p>
<p>Прежде всего необходимо прочитать замечательную статью <a href="http://bezha.od.ua/sysadmin-rpm/">Идеальный сисадмин: RPM</a></p>
<p><strong>Основы работы с менеджером пакетов RPM</strong><br />
Установка пакета</p>
<pre>rpm ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Preparing...             ########################################### [100%]
1:rpmforge-release       ########################################### [100%]</pre>
<p>При установке необходимо указывать полный путь и имя rpm пакета, в отличие от удаления.</p>
<p>Проверяем установлен ли пакет</p>
<pre># rpm -q rpmforge-release
rpmforge-release-0.5.2-2.el5.rf</pre>
<p>Удаление пакета</p>
<pre># rpm -e rpmforge-releas</pre>
<p>При удалении, необходимо указывать имя пакета, которое хранится в базе данных rpm. Если вы не знаете точного имени, то можно воспользоваться следующей командой и выяснить имя соответствующего пакета.</p>
<pre># rpm -qa | grep -i mysql
zabbix-server-mysql-1.8.3-1.el5
mysql-5.0.77-4.el5_5.4
perl-DBD-MySQL-3.0007-2.el5
mysql-server-5.0.77-4.el5_5.4
php-mysql-5.1.6-27.el5_5.3
mysql-devel-5.0.77-4.el5_5.4
</pre>
<p>Данная команда выведет список всех пакетов, в названии которых встречается слово mysql, без учета регистра. Если вы захотите удалить, например mysql-devel, то необходимо будет полностью указывать имя пакета, т.е. MySQL-devel, а не MySQL.</p>
<p>Обратите внимание, что регистр здесь имеет значение. Иначе при попытке удалить пакет, вы получите следующее сообщение</p>
<pre># rpm -e mysql-devel
ошибка: пакет mysql-devel не установлен</pre>
<p>А с учетом регистра пакет удалится без проблем</p>
<pre># rpm -e MySQL-devel</pre>
<p>Обновить пакет</p>
<pre>rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm
Preparing...             ########################################### [100%]
1:rpmforge-release       ########################################### [100%]</pre>
<p>Узнать список всех установленных пакетов в системе можно с помощью следующей команды</p>
<pre># rpm -qa</pre>
<p>Подсчитаем количество пакетов в системе</p>
<pre># rpm -qa | wc -l
918</pre>
<p>Проверка целостности пакета</p>
<pre># rpm -V mc
Если не будет никаких сообщений, то значит, целостность пакета не нарушена</pre>
<p>Для проверки</p>
<pre># mv /etc/zabbix/zabbix_server.conf /root/
# rpm -V zabbix-server-mysql
missing   c /etc/zabbix/zabbix_server.conf</pre>
<p>Еще одной полезной функцией, предоставляемой rpm, является отображение информации о пакете. Допустим, вы хотите узнать, для чего предназначен этот пакет не устанавливая его. Получить информацию о пакете можно с помощью следующей команды</p>
<pre># rpm -qpi /root/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
Name        : rpmforge-release          Relocations: (not relocatable)
Version     : 0.5.2                     Vendor: Dag Apt Repository
Release     : 2.el5.rf                  Build Date: Sat Nov 13 05:55:45 2010
Install Date: (not installed)           Build Host: lisse.hasselt.wieers.com
Group       : System Environment/Base Source : rpmforge-release-0.5.2-2.el5.rf.src.rpm
Size        : 13418                     License: GPL
Signature   : DSA/SHA1, Sat Nov 13 06:12:30 2010, Key ID a20e52146b8d79e6
Packager    : Dag Wieers
URL         : http://rpmforge.net/
Summary     : RPMforge release file and RPM repository configuration
Description :
RPMforge.net release file. This package contains apt, yum and smart
configuration for the RPMforge RPM Repository, as well as the public
GPG keys used to sign them.</pre>
<p>Также с помощью rpm вы можете получить список файлов принадлежащих данному пакету, а также пути, куда они были установлены. Для получения данной информации необходимо выполнить следующую команду</p>
<pre># rpm -ql bind-utils-9.3.6-4.P1.el5_4.2
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/host.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz</pre>
<p>Если вы хотите просмотреть список файлов, предоставляемых данным пакетом, но при этом не хотите устанавливать сам пакет, то выполните следующую команду</p>
<pre># rpm -qpl /root/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
/etc/apt
/etc/apt/sources.list.d
/etc/apt/sources.list.d/rpmforge-extras.list
/etc/apt/sources.list.d/rpmforge-testing.list
/etc/apt/sources.list.d/rpmforge.list
/etc/pki/rpm-gpg
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-fabian
/etc/smart
/etc/smart/channels
/etc/smart/channels/rpmforge.channel
/etc/sysconfig/rhn
/etc/sysconfig/rhn/sources.rpmforge.txt
/etc/yum.repos.d
/etc/yum.repos.d/mirrors-rpmforge
/etc/yum.repos.d/mirrors-rpmforge-extras
/etc/yum.repos.d/mirrors-rpmforge-testing
/etc/yum.repos.d/rpmforge.repo
/usr/share/doc/rpmforge-release-0.5.2
/usr/share/doc/rpmforge-release-0.5.2/RPM-GPG-KEY-rpmforge-dag
/usr/share/doc/rpmforge-release-0.5.2/RPM-GPG-KEY-rpmforge-fabian
/usr/share/doc/rpmforge-release-0.5.2/mirrors-rpmforge.yum
/usr/share/doc/rpmforge-release-0.5.2/rpmforge.apt
/usr/share/doc/rpmforge-release-0.5.2/rpmforge.smart
/usr/share/doc/rpmforge-release-0.5.2/rpmforge.up2date
/usr/share/doc/rpmforge-release-0.5.2/rpmforge.yum</pre>
<p>Какие зависимости у пакета</p>
<pre>
# rpm -qR mc
/bin/sh
/usr/bin/perl
config(mc) = 1:4.6.1a-35.el5
dev >= 0:3.3-3
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.2.1)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libcom_err.so.2
libext2fs.so.2
libglib-2.0.so.0
libslang.so.2
libslang.so.2(SLANG2)
perl(File::Basename)
perl(File::Temp)
perl(POSIX)
perl(bytes)
perl(strict)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
</pre>
<p>Иногда, бывает необходимо узнать, к какому пакету принадлежит определенный файл и здесь вам опять поможет rpm. Для получения этой информации необходимо выполнить следующую команду</p>
<pre># rpm -qf /usr/bin/nslookup
bind-utils-9.3.6-4.P1.el5_4.2</pre>
<p><strong>Yellow dog Updater Modified</strong><br />
<a href="http://ru.wikipedia.org/wiki/Yellow_dog_Updater,_Modified">YUM</a> — открытый консольный менеджер RPM-пакетов. Позволяет облегчить каскадное обновление Linux систем с отслеживанием взаимосвязей RPM-пакетов. Распространяется под лицензией GNU. Первоначально был разработан программистом Seth Vidal и группой волонтёров.</p>
<p><strong>Основы работы с YUM</strong><br />
Установка пакета</p>
<pre>
# yum -y install mc
</pre>
<p>Удаление пакета</p>
<pre>
# yum -y remove mc
</pre>
<p>Обновить пакеты</p>
<pre>
# yum update
</pre>
<p>Поиск пакета</p>
<pre>
# yum search bind-utils
bind-utils.i386 : Utilities for querying DNS name servers.
</pre>
<p>Информация о пакете</p>
<pre>
# yum info mc
Installed Packages
Name       : mc
Arch       : i386
Epoch      : 1
Version    : 4.6.1a
Release    : 35.el5
Size       : 5.2 M
Repo       : installed
Summary    : User-friendly text console file manager and visual shell
URL        : http://www.ibiblio.org/mc/
License    : GPL
Description: Midnight Commander is a visual shell much like a file manager, only
           : with many more features. It is a text mode application, but it also
           : includes mouse support. Midnight Commander's best features are its
           : ability to FTP, view tar and zip files, and to poke into RPMs for
           : specific files.
</pre>
<p>Посмотреть какие репозитории подключены</p>
<pre># yum repolist
repo id             repo name                                             status
CentOS-nixtime      CentOS-nixtime Packages for Enterprise Linux 5 - i386 enabled:    19
addons              CentOS-5 - Addons                                     enabled:     0
base                CentOS-5 - Base                                       enabled:  2599
epel                Extra Packages for Enterprise Linux 5 - i386          enabled:  4869
extras              CentOS-5 - Extras                                     enabled:   337
openvz-kernel-rhel5 OpenVZ RHEL5-based kernel                             enabled:    14
openvz-utils        OpenVZ utilities                                      enabled:    24
rpmforge            RHEL 5 - RPMforge.net - dag                           enabled: 10381
updates             CentOS-5 - Updates                                    enabled:   828
repolist: 22400</pre>
<p>Посмотреть к какому пакету принадлежит определенный файл</p>
<pre>
# yum provides /usr/bin/nslookup
30:bind-utils-9.3.6-4.P1.el5_4.2.i386 : Utilities for querying DNS name servers.
Repo        : base
Matched from:
Filename    : /usr/bin/nslookup

30:bind-utils-9.3.6-4.P1.el5_4.2.i386 : Utilities for querying DNS name servers.
Repo        : installed
Matched from:
Other       : Provides-match: /usr/bin/nslookup
</pre>
<p>Материал был частично взят с сайта <a href="http://www.sys-adm.org.ua"> www.sys-adm.org.ua </a>, так как сайт частенько недоступен то его можно прочитать через <a href="http://web.archive.org/web/20080606224042/www.sys-adm.org.ua/"> web.archive.org </a></p>
<p><strong>Вопросы LPI-I</strong> ( приблизительные )</p>
<pre>1) You have accidentally deleted the file /usr/lib/libm.so. It needs to be re-installed,
but you cannot remember what package it comes from.
Which of the following commands would help you find the package that contains libm.so?
A. rpm -qf libm.so
B. rpm -e libm.so
C. rpm -ivh libm.so
D. rpm -qi libm.so
</pre>
<pre>
2) Version 1.7 of your favorite web browser has just been released as an RPM package.
You would like to install it while automatically un-installing any other versions.
Which RPM command will allow you to install a new version of an RPM
while automatically un-installing other versions?
A. rpm --install
B. rpm --upgrade
C. rpm --verify
D. rpm --erase
</pre>
<pre>
3) What function will be performed by the command rpm -ivh foo.rpm?
A. Verification of the files in foo.rpm
B. Recalculation of the MD5 hash value for foo.rpm
C. Installation of the package foo.rpm
D. Verification of the signature for foo.rpm
</pre>
<pre>
4) You want to deinstall the packet foobar from your RedHat box. But you are
not sure, if some other packets depend on this packet. What command would
you use to get this information?
A. rpm --dep foobar
B. rpm -q --whatrequires foobar
C. rpm -q --list-deps foobar
D. rpm -d foobar
E. grep foobar /var/rpm/deps
</pre>
<p><strong>Ответы</strong></p>
<pre>
1) The correct answer is <strong>A</strong>, rpm -qf will query a file to find out which package it came
Answer B is incorrect because rpm -e is used to erase packages
Answer C is incorrect since rpm -ivh is used to install packages
Answer D is incorrect because rpm -qi is used to query packages for information
</pre>
<pre>
2) The correct answer is <strong>B</strong>, rpm --upgrade will install the new version of an RPM
and then un-install any other version
Answer A is incorrect, because while rpm --install will install a package
it will not un-install other versions
Answer C is incorrect, because rpm --verify does not install or remove packages
Answer D is incorrect, rpm --erase removes packages
</pre>
<pre>
3) The correct answer is <strong>C</strong>, rpm -ivh foo.rpm will install the package foo.rpm
More specifically it will install verbosely
with hash marks to indicate the installation progress
Answer B is incorrect, do not confuse hash marks with hash values
Answer D is incorrect as signatures verification is performed with rpm --checksig
</pre>
<pre>
The correct answer is <strong>B</strong>
# rpm -q --whatrequires mc-4.6.1a-35.el5
no package requires mc-4.6.1a-35.el5
</pre>
<p>Читать: <a href="http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-102-5/">Learn Linux, 101: RPM and YUM package management</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lpi.bezha.od.ua/rpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

