basics – Ivan Pesin https://pesin.space/blog Articles & Translations Wed, 19 Oct 2016 02:08:18 +0000 en-US hourly 1 https://wordpress.org/?v=5.1.1 Почему команда ls добавляет точку (.) или плюс (+) к полю прав доступа некоторых файлов? /blog/2009/07/%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0-ls-%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d1%82-%d1%82%d0%be%d1%87%d0%ba%d1%83-%d0%b8%d0%bb%d0%b8-%d0%bf/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25bf%25d0%25be%25d1%2587%25d0%25b5%25d0%25bc%25d1%2583-%25d0%25ba%25d0%25be%25d0%25bc%25d0%25b0%25d0%25bd%25d0%25b4%25d0%25b0-ls-%25d0%25b4%25d0%25be%25d0%25b1%25d0%25b0%25d0%25b2%25d0%25bb%25d1%258f%25d0%25b5%25d1%2582-%25d1%2582%25d0%25be%25d1%2587%25d0%25ba%25d1%2583-%25d0%25b8%25d0%25bb%25d0%25b8-%25d0%25bf Mon, 06 Jul 2009 20:03:47 +0000 http://www.n-ix.com/ipesin/?p=458 Система: Fedora 11

Пример:

[ivan@radon ~]$ ll /boot/vmlinuz-*
-rwxr-xr-x. 1 root root 3089424 2009-05-28 00:39 /boot/vmlinuz-2.6.29.4-167.fc11.i686.PAE
-rwxr-xr-x. 1 root root 3088208 2009-06-17 06:27 /boot/vmlinuz-2.6.29.5-191.fc11.i686.PAE

Это новая функциональность, добавленная в последние версии пакета coreutils, который включён в дистрибутив Fedora 11. Ответ на этот вопрос содержит страница информации команды ls. Посмотреть её можно командой # info ls. Вот выдержка оттуда:

За битами прав доступа следует один символ, который указывает на то, используется ли альтернативный метод контроля доступа, такой, например, как списки контроля доступа. Если этот символ отсутствует, это означает, что альтернативные методы не используется. Если же отображается какой-либо печатный символ — значит используется.

Команда GNU ls использует символ точки (.) для обозначения, что у файла есть только контекст безопасности SELinux. Если у файла присутствуют и другие методы контроля доступа в любой комбинации, он помечается символом плюс (+).

]]>
Как создать файловую систему ext3, оптимизированную для работы на RAID и приложений с прямым вводом/выводом? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%82%d1%8c-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d1%83%d1%8e-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%83-ext3-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d1%2581%25d0%25be%25d0%25b7%25d0%25b4%25d0%25b0%25d1%2582%25d1%258c-%25d1%2584%25d0%25b0%25d0%25b9%25d0%25bb%25d0%25be%25d0%25b2%25d1%2583%25d1%258e-%25d1%2581%25d0%25b8%25d1%2581%25d1%2582%25d0%25b5%25d0%25bc%25d1%2583-ext3-%25d0%25be%25d0%25bf%25d1%2582%25d0%25b8%25d0%25bc%25d0%25b8 Sun, 28 Jun 2009 07:56:50 +0000 http://www.n-ix.com/ipesin/?p=257

Система: Red Hat Enterprise Linux 3, Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5

Решение:

RAID уровней 0, 4, 5 и 6 для записи на разные диски, разбивает данные на большие блоки — “полосы”, обычно по 64KB. Выравнивание разделов и файловых систем в соответствии с размером этих полос может повысить производительность, в частности, программ, которые используют прямой ввод/вывод.

Программа fdisk создаёт разделы, выровненные по границам цилиндров, в соответствии с исторической геометрией “цилиндр/дорожка/сектор” (cylinder/head/sector, C/H/S). Это позволяет обеспечить максимальную совместимость с другими операционными системами и утилитами. К сожалению, такая геометрия обычно не соответствует размеру полосы RAID-массива. Если доступ к RAID будет осуществляться только операционными системами и утилитами, полностью поддерживающими логическую адресацию блоков (Logical Block Addressing, LBA), то необходимость в выравнивании по геометрии C/H/S отпадает, а с помощью программы parted можно выровнять разделы под полосы RAID-массива.

Внимание: все приводимые здесь примеры уничтожают существующие разделы и файловые системы. Применяйте их только для создания новых файловых систем.

Пример 1: выровненный по границе цилиндра раздел, созданный утилитой fdisk на диске /dev/sdb.

[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 60799.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-60799, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-60799, default 60799):
Using default value 60799

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# parted -s /dev/sdb unit s print

Model: APPLE Xserve RAID (scsi)
Disk /dev/sdb: 976748543s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start    End         Size        Type     File system  Flags
 1      63s      976735934s  976735872s  primary

[root@localhost ~]#

Parted показывает, что fdisk создал раздел, начиная с 63-сектора (32,256 байта) тома, что совместимо с геометрией C/H/S, но не оптимально для RAID. Поскольку RAID использует полосы размером 64KB, начало раздела должно быть сдвинуто на сектор 128. Начинать раздел с нулевого сектора нельзя, поскольку будет перезаписана таблица разделов. Большинство RAID-массивов используют сектора размером 512 байт, но возможны сектора и большего размера.

Примечание: По-умолчанию, parted использует в единицах размера легко читаемые сокращения системы СИ (степени числа 10). Поскольку они редко совпадают со степенями числа 2, parted нужно перевести в режим работы с секторами (unit s), перед тем как проверять или задавать выравнивание разделов по секторам.

Пример 2: удалите раздел /dev/sdb1 и создайте его заново, начиная с сектора 128.

[root@localhost ~]# parted /dev/sdb
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) print

Model: APPLE Xserve RAID (scsi)
Disk /dev/sdb: 976748543s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start    End         Size        Type     File system  Flags
 1      63s      976735934s  976735872s  primary

(parted) rm 1
(parted) mkpart primary 128 976735934
(parted) print

Model: APPLE Xserve RAID (scsi)
Disk /dev/sdb: 976748543s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start    End         Size        Type     File system  Flags
 1     128s      976735934s  976735807s  primary

(parted) quit
[root@localhost ~]#

Примечание: Команды move и resize утилиты parted пытаются сохранить содержимое файловой системы раздела. Если в разделе нет файловой системы, то эти команды откажутся работать.

Выровненная файловая система ext3 может быть создана на выровненном разделе или на логическом томе, состоящем из выровненных физических томов. LVM не влияет на выравнивание, если размер физического экстента, превосходит размер блока RAID. Обычно размер RAID блока равен 64KB, а размер физического экстента — 4MB.

Команда mke2fs принимает параметр stride, который позволяет оптимизировать размещение метаданных файловой системы для RAID-массивов. Параметр задаётся в блоках файловой системы, которые в большинстве случаев равняются 4KB. Чтобы избежать возможных неточностей и гарантировать правильность вычислений, лучше всего его задать явно.

Пример 3: создайте файловую систему ext3 на /dev/sdb1, оптимизированную для RAID с размером блока 64KB.

[root@localhost ~]# mke2fs -j -b 4096 -E stride=16 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61046784 inodes, 122091975 blocks
6104598 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
3726 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000

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

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]#

]]>
Как определить архитектуру установленного пакета? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b8%d1%82%d1%8c-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d1%83-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%bb/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25be%25d0%25bf%25d1%2580%25d0%25b5%25d0%25b4%25d0%25b5%25d0%25bb%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b0%25d1%2580%25d1%2585%25d0%25b8%25d1%2582%25d0%25b5%25d0%25ba%25d1%2582%25d1%2583%25d1%2580%25d1%2583-%25d1%2583%25d1%2581%25d1%2582%25d0%25b0%25d0%25bd%25d0%25be%25d0%25b2%25d0%25bb Sat, 20 Jun 2009 16:28:32 +0000 http://www.n-ix.com/ipesin/?p=218

По-умолчанию, если вы сделаете запрос командой rpm -q, архитектура пакета отображаться не будет. Чтобы узнать архитектуру пакета, используйте команду rpm с такими параметрами:

rpm -q --queryformat="%{n}-%{v}-%{r}.%{arch}.rpm\n" <имя пакета>

Замените <имя пакета> названием пакета, архитектуру которого нужно узнать. Если вы не знаете точного имени пакета, то та же опция --queryformat может использоваться с командой rpm -qa, а вывод пропустите через фильтр grep, чтобы найти все пакеты, соответствующие шаблону:

rpm -qa --queryformat="%{n}-%{v}-%{r}.%{arch}.rpm\n" | grep &lt;имя пакета&gt;

Чтобы вывод команды rpm всегда включал архитектуру пакета, отредактируйте файл /etc/rpm/macros.prelink и добавьте в конце следующую строку:

%_query_all_fmt %{n}-%{v}-%{r}.%{arch}

]]>
Где найти дополнительную информацию для отладки autofs? /blog/2009/05/where-can-i-find-additional-system-information-about-autofs-for-troubleshooting/?utm_source=rss&utm_medium=rss&utm_campaign=where-can-i-find-additional-system-information-about-autofs-for-troubleshooting Tue, 26 May 2009 18:23:58 +0000 http://www.n-ix.com/ipesin/?p=31

Использование ключа --debug системы automounter может помочь получить полезную информацию при отладке, но при этом генерируется большой объём журнальных записей. Поэтому, использование этого ключа рекомендуется лишь во время отладки конкретной проблемы.

Сначала настройте syslog писать сообщения уровня daemon.debug в отдельный файл. Это поможет в дальнейшем отбирать необходимые сообщения. Добавьте такую строку в файл /etc/syslog.conf:

daemon.debug /var/log/autofs

Перегрузите syslog:

service syslog reload

Разрешите режим отладки демона automount. В карте auto.master добавьте флаг --debug в нужной строке.

Например, у нас есть такая строка в файле auto.master:

/autofoo auto.foo --timeout=60

Измените её на следующую:

/autofoo auto.foo --timeout=60 --debug

Перегрузите autofs:

service autofs reload

В результате, autofs начнёт писать подробную информацию о своей работе в журнальный файл /var/log/autofs.

После того, как вы получили необходимую информацию, стоит отменить внесённые изменения. Удалите строки, добавленные в конфигурационные файлы, и перезапустите сервисы autofs и syslog.

]]>