По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Новое в IPv6-это автоконфигурация, которая является почти "мини-DHCP" - сервером, и некоторые протоколы были удалены или изменены. Точно так же, как IPv4, хосты, настроенные на IPv6, должны узнать MAC-адрес других устройств, но мы больше не используем ARP, он был заменен протоколом под названием NDP (Neighbour Discovery Protocol). Теоретические основы Помимо изучения MAC-адресов, NDP используется для решения ряда задач: Router Discovery (обнаружение маршрутизаторов): NDP используется для изучения всех доступных маршрутизаторов IPv6 в подсети. Обнаружение MAC-адресов: после того, как хост выполнил проверку DAD и использует IPv6 адрес он должен будет обнаружить MAC адреса хостов с которыми он хочет общаться. DAD (обнаружение дубликатов адресов): каждый хост IPv6 будет ждать, чтобы использовать свой адрес, если только он не знает, что ни одно другое устройство не использует тот же адрес. Этот процесс называется DAD, и NDP делает это за нас. SLAAC: NDP используется, чтобы узнать, какой адрес и длину префикса должен использовать хост. Мы рассмотрим все задачи, чтобы увидеть, как они работают. Начнем с обнаружения маршрутизатора. Когда хост настроен на IPv6, он автоматически обнаруживает маршрутизаторы в подсети. Хост IPv6 может использовать NDP для обнаружения всех маршрутизаторов в подсети, которые могут использоваться в качестве шлюза по умолчанию. В принципе, хост отправляет сообщение с запросом, есть ли там какие-либо маршрутизаторы, и маршрутизаторы ответят. Используются два сообщения: RS (Router Solicitation), который отправляется на "все маршрутизаторы ipv6" FF02::2 multicast адрес. RA (Router Advertisement) отправляется маршрутизатором и включает в себя его link-local IPv6 адрес. Когда хост отправляет запрос маршрутизатору, маршрутизатор будет отвечать на одноадресный адрес хоста. Маршрутизаторы также будут периодически отправлять рекламные объявления маршрутизаторов для всех заинтересованных сторон, они будут использовать для этого адрес FF02:: 1 "все узлы". Большинство маршрутизаторов также будут иметь global unicast адрес, настроенный на интерфейсе, в этом случае хосты будут узнавать не только о link-local адресе, но и о префиксе, который используется в подсети. Этот префикс можно использовать для SLAAC. NPD также используется в качестве замены ARP. Для этого он использует два вида сообщений: NS (Neighbor Solicitation) NA (Neighbor Advertisement) Запрос соседа работает аналогично запросу ARP, он запрашивает определенный хост для своего MAC-адреса, и объявление соседа похоже на ответ ARP, поскольку оно используется для отправки MAC-адреса. В основном это выглядит так: Всякий раз, когда хост посылает запрос соседу, он сначала проверяет свой кэш, чтобы узнать, знает ли он уже MAC-адрес устройства, которое он ищет. Если его там нет, он пошлет соседу запрос. Эти соседние запрашивающие сообщения используют solicited-node multicast адрес запрашиваемого узла. Помимо обнаружения MAC-адресов, сообщения NS и NA также используются для обнаружения дубликатов IPv6-адресов. Прежде чем устройство IPv6 использует одноадресный адрес, оно выполнит DAD (обнаружение дубликатов адресов), чтобы проверить, не использует ли кто-то другой тот же IPv6-адрес. Если адрес используется, хост не будет его использовать. Вот как это выглядит: Host1 был настроен с IPv6-адресом 2001:1:1:1::2, который уже используется Host2. Он будет посылать запрос соседства, но поскольку host2 имеет тот же IPv6-адрес, он ответит объявлением соседа. Host1 теперь знает, что это дубликат IPv6-адреса. Эта проверка выполняется для всех одноадресных адресов, включая link-local адреса. Это происходит, когда вы настраиваете их и каждый раз, когда интерфейс находится в состоянии "up". Последний NPD, который мы рассмотрим, - это SLAAC, которая позволяет хостам автоматически настраивать свой IPv6-адрес. Для IPv4 мы всегда использовали DHCP для автоматического назначения IP-адреса, шлюза по умолчанию и DNS-сервера нашим хостам, и эта опция все еще доступна для IPv6 (мы рассмотрим ее ниже). DHCP прекрасная "вещь", но недостатком является то, что вам нужно установить DHCP-сервер, настроить пул с диапазонами адресов, шлюзами по умолчанию и DNS-серверами. Когда мы используем SLAAC, наши хосты не получают IPv6-адрес от центрального сервера, но он узнает префикс, используемый в подсети, а затем создает свой собственный идентификатор интерфейса для создания уникального IPv6-адреса. Вот как работает SLAAC: Хост сначала узнает о префиксе с помощью сообщений NDS RS RA. Хост принимает префикс и создает идентификатор интерфейса, чтобы создать уникальный IPv6-адрес. Хост выполняет DAD, чтобы убедиться, что IPv6-адрес не используется никем другим. Маршрутизаторы Cisco будут использовать EUI-64 для создания идентификатора интерфейса, но некоторые операционные системы будут использовать случайное значение. Благодаря SLAAC хост будет иметь IPv6-адрес и шлюз, но один элемент все еще отсутствует...DNS-сервер. SLAAC не может помочь нам с поиском DNS-сервера, поэтому для этого шага нам все еще требуется DHCP. DHCP для IPv6 называется DHCPv6 и поставляется в двух формах: Stateful Stateless Мы рассмотрим DHCPv6 чуть позже, но для SLAAC нам нужно понять, что такое stateless DHCPv6. Обычно DHCP-сервер отслеживает IP-адреса, которые были арендованы клиентами, другими словами, он должен сохранять "состояние" того, какие IP-адреса были арендованы и когда они истекают. Сервер stateless DHCPv6 не отслеживает ничего для клиентов. Он имеет простую конфигурацию с IPv6-адресами нескольких DNS-серверов. Когда хост IPv6 запрашивает у сервера DHCPv6 IPv6-адрес DNS-сервера, он выдает этот адрес, и все. Поэтому, когда вы используете SLAAC, вам все еще нужен stateless DHCPv6, чтобы узнать о DNS-серверах. Теперь вы узнали все задачи, которые NPD выполняет для нас: Router Discovery MAC Address Discovery Duplicate Address Detection Stateless Address Autoconfiguration Настройка на Cisco Давайте посмотрим на NPD на некоторых маршрутизаторах, чтобы увидеть, как он работает в реальности. Будет использоваться следующая топология для демонстрации: Будем использовать OFF1 в качестве хоста, который будет автоматически настраиваться с помощью SLAAC и OFF2 в качестве маршрутизатора. 2001:2:3:4//64 это префикс, который мы будем использовать. Давайте сначала настроим OFF2: OFF2(config)#ipv6 unicast-routing Прежде чем OFF2 будет действовать как маршрутизатор, нам нужно убедиться, что включена одноадресная маршрутизация IPv6. Теперь давайте настроим IPv6 адрес на интерфейсе: OFF2(config)#interface fa0/0 OFF2(config-if)#no shutdown OFF2(config-if)#ipv6 address 2001:2:3:4::1/64 Перед настройкой OFF1 мы включим отладку NPD на обоих маршрутизаторах, чтобы могли видеть различные сообщения: OFF1#debug ipv6 nd ICMP Neighbor Discovery events debugging is on OFF2#debug ipv6 nd ICMP Neighbor Discovery events debugging is on Команда debug ipv6 nd очень полезна, так как она будет показывать различные сообщения, которые использует NPD. Давайте теперь настроим OFF1: OFF1(config)#interface fa0/0 OFF1(config-if)#no shutdown OFF1(config-if)#ipv6 address autoconfig OFF1 будет настроен для использования SLAAC с командой ipv6 address autoconfig. При включенной отладке вы увидите на своей консоли следующие элементы: OFF1# ICMPv6-ND: Sending NS for FE80::C000:6FF:FE7C:0 on FastEthernet0/0 ICMPv6-ND: DAD: FE80::C000:6FF:FE7C:0 is unique. Он посылает NS для своего собственного IPv6-адреса, и когда никто не отвечает, он понимает, что это единственный хост, использующий этот адрес. Вы также можете видеть, что OFF1 отправляет объявление соседства в сторону OFF2: OFF1# ICMPv6-ND: Sending NA for FE80::C000:6FF:FE7C:0 on FastEthernet0/0 OFF2# ICMPv6-ND: Received NA for FE80::C000:6FF:FE7C:0 on FastEthernet0/0 from FE80::C000:6FF:FE7C:0 Мы можем просмотреть базу данных с информацией L2 и L3 следующим образом: OFF2#show ipv6 neighbors IPv6 Address Age Link-layer Addr State Interface FE80::C000:6FF:FE7C:0 21 c200.067c.0000 STALE Fa0/0 show ipv6 neighbors покажет вам IPv6-адреса и MAC-адреса. OFF1 также отправит запрос маршрутизатора, а OFF2 в ответ отправит объявление маршрутизатора: OFF1# ICMPv6-ND: Sending RS on FastEthernet0/0 OFF2# ICMPv6-ND: Received RS on FastEthernet0/0 from FE80::C000:6FF:FE7C:0 ICMPv6-ND: Sending solicited RA on FastEthernet0/0 ICMPv6-ND: Sending RA from FE80::C001:6FF:FE7C:0 to FF02::1 on FastEthernet0/0 ICMPv6-ND: MTU = 1500 ICMPv6-ND: prefix = 2001:2:3:4::/64 onlink autoconfig ICMPv6-ND: 2592000/604800 (valid/preferred) OFF1# ICMPv6-ND: Received RA from FE80::C001:6FF:FE7C:0 on FastEthernet0/0 ICMPv6-ND: Selected new default router FE80::C001:6FF:FE7C:0 on FastEthernet0/0 Если вы хотите увидеть все маршрутизаторы, о которых знает ваш хост, вы можете использовать следующую команду: OFF1#show ipv6 routers Router FE80::C001:6FF:FE7C:0 on FastEthernet0/0, last update 0 min Hops 64, Lifetime 1800 sec, AddrFlag=0, OtherFlag=0, MTU=1500 HomeAgentFlag=0, Preference=Medium Reachable time 0 msec, Retransmit time 0 msec Prefix 2001:2:3:4::/64 onlink autoconfig Valid lifetime 2592000, preferred lifetime 604800 Поскольку OFF1 настроен для SLAAC он будет использовать префикс в объявлении маршрутизатора для настройки самого себя: OFF1# ICMPv6-ND: Prefix Information change for 2001:2:3:4::/64, 0x0 - 0xE0 ICMPv6-ND: Adding prefix 2001:2:3:4::/64 to FastEthernet0/0 ICMPv6-ND: Sending NS for 2001:2:3:4:C000:6FF:FE7C:0 on FastEthernet0/0 ICMPv6-ND: Autoconfiguring 2001:2:3:4:C000:6FF:FE7C:0 on FastEthernet0/0 ICMPv6-ND: DAD: 2001:2:3:4:C000:6FF:FE7C:0 is unique. Он будет использовать префикс и автоматически настраивать IPv6-адрес. Прежде чем он использует адрес, он будет использовать DAD, чтобы убедиться, что адрес уникален. Давайте посмотрим IPv6-адрес: OFF1#show ipv6 int brief FastEthernet0/0 [up/up] FE80::C000:6FF:FE7C:0 2001:2:3:4:C000:6FF:FE7C:0 Как вы видите, OFF1 использовал 2001:2:3:4::/64 префикс для настройки самого себя. Это вся информация о NPD для вас сейчас, давайте продолжим изучение материала обратив подробное внимание на DHCPv6! Статусный DHCPv6 работает аналогично DHCP для IPv4. Мы все еще используем его для предоставления адресов, шлюзов по умолчанию, DNS-серверов и некоторых других опций клиентам, но одним из ключевых отличий являются сообщения, которые мы теперь используем. DHCP для IPv4 использует сообщения Discover, Offer, Request и ACK. DHCPv6 использует Solicit, Advertise, Request и Reply message. Время получения сообщения, похожие на сообщения обнаружения. Хост будет использовать это сообщение, когда он ищет IPv6-адрес сервера DHCPv6. Сообщение advertise используется для предоставления хосту IPv6-адреса, шлюза по умолчанию и DNS-сервера. Сообщение запроса используется хостом, чтобы спросить, можно ли использовать эту информацию, и ACK отправляется сервером для подтверждения этого. Аналогично, как и для DHCP IPv4, когда ваш DHCP-сервер не находится в той же подсети, вам потребуется DHCP relay для пересылки сообщений DHCP на центральный DHCP-сервер.
img
Если вы работаете с Windows, структура файловой системы Linux может показаться особенно чуждой. Диск C: и буквы диска исчезли, их заменили каталоги / и загадочно звучащие каталоги, большинство из которых имеют трехбуквенные имена. Стандарт иерархии файловой системы (FHS - Filesystem Hierarchy Standard) определяет структуру файловых систем в Linux и других UNIX-подобных операционных системах. Однако файловые системы Linux также содержат некоторые каталоги, которые еще не определены стандартом. Обратите внимание, что мы не говорим здесь о файловой системе, которая является техническим шаблоном, используемым для хранения данных на диске. Структура каталогов, которую мы рассмотрим, применима к большинству дистрибутивов Linux независимо от того, какую файловую систему они используют. Типы содержимого Это основные типы контента, хранящегося в файловой системе Linux. Постоянный (Persistent) - это содержимое, которое должно быть постоянным после перезагрузки, например, параметры конфигурации системы и приложений. Время выполнения (Runtime) - контент, созданный запущенным процессом, обычно удаляется перезагрузкой Переменный/динамический (Variable/Dynamic) - это содержимое может быть добавлено или изменено процессами, запущенными в системе Linux. Статический контент (Static) - остается неизменным до тех пор, пока не будет явно отредактирован или перенастроен. / - Корневой каталог (root) Все в вашей системе Linux находится в каталоге /, известном как root или корневой каталог. Вы можете думать о каталоге / как о каталоге C: в Windows, но это не совсем так, поскольку в Linux нет букв дисков. В то время как другой раздел будет расположен вD: в Windows, этот другой раздел появится в другой папке в / в Linux. Если вы посмотрите на структуру каталогов, вы поймете, что она похожа на корень дерева. Поскольку все остальные каталоги или файлы происходят от корня, абсолютный путь к любому файлу проходит через корень. Например, если у вас есть файл в /home/user/documents, вы можете догадаться, что структура каталогов идет как root -> home -> user -> documents. /bin - Основные пользовательские двоичные файлы Каталог /bin содержит основные пользовательские двоичные файлы (программы), которые должны присутствовать при монтировании системы в однопользовательском режиме. Приложения, например такие как браузер Firefox, хранятся в /usr/bin, а важные системные программы и утилиты, такие как оболочка bash, находятся в /bin. Каталог /usr может храниться в другом разделе - размещение этих файлов в каталоге /bin гарантирует, что в системе будут эти важные утилиты, даже если другие файловые системы не смонтированы. /bin непосредственно содержит исполняемые файлы многих основных команд оболочки, таких как ps, ls, ping, grep, cp. Каталог /sbin аналогичен - он содержит важные двоичные файлы системного администрирования. /sbin содержит iptables, reboot, fdisk, ifconfig, swapon /boot - Статические загрузочные файлы Каталог /boot содержит файлы, необходимые для загрузки системы - например, здесь хранятся файлы загрузчика GRUB и ваши ядра Linux. Однако файлы конфигурации загрузчика не находятся здесь - они находятся в /etc вместе с другими файлами конфигурации. /cdrom - Точка монтирования для компакт-дисков Каталог /cdromне является частью стандарта FHS, но вы все равно найдете его в Ubuntu и других операционных системах. Это временное место для компакт-дисков, вставленных в систему. Однако стандартное расположение временных носителей находится в каталоге /media. /dev - Файлы устройства Linux представляет устройства в виде файлов, а каталог /dev содержит ряд специальных файлов, представляющих устройства. Это не настоящие файлы в том виде, в каком мы их знаем, но они отображаются как файлы - например, /dev/sda представляет собой первый диск SATA в системе. Второй диск будет называться /dev/sdb. Если вы хотите его разбить, вы можете запустить редактор разделов и указать ему отредактировать /dev/sda. В итоге получим что первым разделом этого диска будет /dev/sda1, а вторым - /dev/sda2. Этот каталог также содержит псевдоустройства, которые представляют собой виртуальные устройства, которые на самом деле не соответствуют оборудованию. Например, /dev/random производит случайные числа. /dev/null - это специальное устройство, которое не производит вывода и автоматически отбрасывает весь ввод - когда вы перенаправляете вывод команды на /dev/null, вы отбрасываете его. /etc - Файлы конфигурации Каталог /etc содержит файлы конфигурации, которые обычно можно редактировать вручную в текстовом редакторе. Обратите внимание, что каталог /etc/ содержит общесистемные файлы конфигурации (например имя хоста) - пользовательские файлы конфигурации находятся в домашнем каталоге каждого пользователя. /home - Домашние папки Каталог /home содержит домашнюю папку для каждого пользователя. Например, если ваше имя пользователя - bob, у вас есть домашняя папка, расположенная в /home/bob. Эта домашняя папка содержит файлы данных пользователя и пользовательские файлы конфигурации. Каждый пользователь имеет право записи только в свою домашнюю папку и должен получить повышенные права (стать пользователем root) для изменения других файлов в системе. /lib - Основные общие библиотеки Каталог /lib содержит библиотеки, необходимые для основных двоичных файлов в папке /bin и /sbin. Библиотеки, необходимые для двоичных файлов в папке /usr/bin, находятся в /usr/lib. Имена файлов библиотеки: ld* или lib*.so.*. Поскольку вы, вероятно, используете 64-битную операционную систему, то у вас есть пара каталогов: /lib, /lib32 и /lib64. Те библиотеки, которые не содержат кода, специфичного для версии процессора, находятся в папке /lib. Те, которые зависят от версии, находятся в каталогах /lib32 (32-бит) или /lib64 (64-бит), в зависимости от ситуации. /lost+found - Восстановленные файлы В каждой файловой системе Linux есть каталог /lost+found. В случае сбоя файловой системы проверка файловой системы будет выполнена при следующей загрузке. Любые найденные поврежденные файлы будут помещены в каталог lost+found, чтобы вы могли попытаться восстановить как можно больше данных. /media - Съемный носитель Каталог /media содержит подкаталоги, в которых монтируются съемные носители, вставленные в компьютер. Например, когда вы вставляете компакт-диск в свою систему Linux, внутри каталога /media автоматически создается каталог. Вы можете получить доступ к содержимому компакт-диска внутри этого каталога. Например, /media/cdrom для CD-ROM (если он не расположен в корне), /media/floppy для дисководов гибких дисков, /media/cdrecorder для рекордера компакт-дисков /mnt - Временные точки монтирования Исторически сложилось так, что каталог /mnt - это то место, где системные администраторы монтируют временные файловые системы во время их использования. Например, если вы монтируете раздел Windows для выполнения некоторых операций по восстановлению файлов, вы можете подключить его в /mnt/windows. Однако вы можете монтировать другие файловые системы в любом месте системы. /opt - Дополнительные пакеты Каталог /opt содержит подкаталоги для дополнительных пакетов программного обеспечения. Он обычно используется проприетарным программным обеспечением, которое не подчиняется стандартной иерархии файловой системы - например, проприетарная программа может выгружать свои файлы в /opt/application при ее установке. /proc - Файлы ядра и процессов Каталог /proc похож на каталог /dev, потому что он не содержит стандартных файлов. Он содержит специальные файлы, которые представляют информацию о системе и процессе. Это псевдофайловая система, содержащая информацию о запущенном процессе. Например: каталог /proc/{pid} содержит информацию о процессе с этим конкретным pid. Также тут можно получить текстовую информацию о системных ресурсах. Например узнать аптайм /proc/uptime, проверить информацию о процессоре /proc/cpuinfo или проверить использование памяти вашей системой Linux /proc/meminfo. /root - Корневой домашний каталог Каталог /root - это домашний каталог пользователя root. Вместо того, чтобы находиться в /home/root, он находится в /root. Он отличается от /, который является корневым каталогом системы, важно не путать их. /run - Файлы состояния приложения Каталог /run является довольно новым и предоставляет приложениям стандартное место для хранения необходимых им временных файлов, таких как сокеты и идентификаторы процессов. Эти файлы нельзя хранить в /tmp, потому что файлы в /tmp могут быть удалены. /sbin - Двоичные файлы системного администрирования Каталог /sbin аналогичен каталогу /bin. Он содержит важные двоичные файлы, которые обычно предназначены для запуска пользователем root для системного администрирования. /selinux - виртуальная файловая система SELinux Если ваш дистрибутив Linux использует SELinux для обеспечения безопасности (например, Fedora и Red Hat), каталог /selinux содержит специальные файлы, используемые SELinux. Это похоже на /proc. Ubuntu не использует SELinux, поэтому наличие этой папки в Ubuntu кажется ошибкой. /srv - Сервисные данные Каталог /srv содержит «данные об услугах, предоставляемых системой». Если вы использовали HTTP-сервер Apache для обслуживания веб-сайта, вы, вероятно, сохранили бы файлы своего веб-сайта в каталоге внутри каталога /srv. /tmp - Временные файлы Приложения хранят временные файлы в каталоге /tmp. Эти файлы обычно удаляются при перезапуске вашей системы и могут быть удалены в любое время с помощью таких утилит, как tmpwatch. /usr - Пользовательские двоичные файлы и данные только для чтения Каталог /usr содержит приложения и файлы, используемые пользователями, в отличие от приложений и файлов, используемых системой. Например, второстепенные приложения расположены в каталоге /usr/bin вместо каталога /bin, а второстепенные двоичные файлы системного администрирования расположены в каталоге /usr/sbin вместо каталога /sbin. Библиотеки для каждого из них находятся в каталоге /usr/lib. Каталог /usr также содержит другие каталоги - например, файлы, не зависящие от архитектуры, такие как графика, находятся в /usr/share. Каталог /usr/local - это место, куда по умолчанию устанавливаются локально скомпилированные приложения - это не позволяет им испортить остальную часть системы. /var - файлы переменных данных /var это место, где программы хранят информацию о времени выполнения, такую как системный журнал, отслеживание пользователей, кэши и другие файлы, которые системные программы создают и управляют. Каталог /var является записываемым аналогом каталога /usr, который при нормальной работе должен быть доступен только для чтения. Файлы логов и все остальное, что обычно записывается в /usrво время нормальной работы, записывается в каталог /var. Например, вы найдете файлы логов в /var/log. Помимо логов тут можно найти пакеты и файлы базы данных /var/lib, электронные письма /var/mail, очереди печати /var/spool, файлы блокировки /var/lock, временные файлы, необходимые при перезагрузке /var/tmp.
img
Цель данной статьи, чтобы разобраться с тем как поправить незначительные ошибки, возникающие в файловых системах. Файловых систем много, поэтому много различных инструментов для работы с ними. Поэтому будет рассказано об основных инструментах к основным стандартным системам Linux. И рассмотрим несколько инструментов к рекомендованным LPIC файловым системам. Рассмотрим, так же журналируемые файловые системы и посмотрим индексные дескрипторы. Проверка целостности файловой системы; Проверка свободного пространства и индексных дескрипторов в файловой системе; Исправление проблем файловой системы. Список утилит: df, du, fsck, debugfs – общие утилиты для всех Linux систем mke2fs, e2fsck, dumpe2fs, tune2fs – утилиты для файловой системы ext xfs_check, xfs_repair, xfs_info, xfs_metadump – утилиты для файловой системы xfs Совершенно понятно, что для других файловых систем есть свои утилиты для работы с данными файловыми сиcтемами. Первая утилита df: man df Данная утилита показывает использование дискового пространства. У данной утилиты достаточно много ключей. Её особенностью является то, что она показывает дисковое пространство в 1 кбайт блоках. Данные цифры не очень понятны и удобны, для того чтобы было удобно можно использовать ключ –h и тогда вид станет удобно читаемым. В выводе команды мы сразу видим размер, сколько использовано, процент использование и точка монтирования. Как мы видим на новом перемонтированном разделе /dev/sdc1 занят 1% дискового пространства. Если посмотреть в папку монтирования раздела, то мы увидим там папку lost+found. Данная папка пуста, но занимает 37 МБ. Есть такое понятие индексные дескрипторы в журналируемых файловых системах inode. Inode – это метка идентификатора файла или по другому индексный дескриптор. В этих индексных дескрипторах хранится информация о владельце, типе файла, уровне доступа к нему. И нужно понимать, что для каждого файла создается свой отдельный inode. Команда df –I может показать нам inode. Число, например, inode напротив /dev/sda2 показывает сколько inode всего может быть на устройстве, далее сколько используется и сколько свободно. Обычно под inode отдается примерно 1% жесткого диска. И получается, что больше чем число inode на устройстве файлов и папок быть не может. Количество inode зависит от типа файловой системы. Далее мы рассмотрим, как пользоваться inode. Следующая команда du man du Данная команда показывает, что и сколько занимает у нас места на жестком диске, а именно размер папок в текущей директории. Если посмотреть вывод данной команды без ключей, то мы увидим список папок в текущей директории и количество блоков, с которым очень неудобно работать. Чтобы перевести данные блоки в человеческий вид, то необходимо дать ключ –h. А для еще большего удобства, можно установить замечательную утилиту ncdu простой командой. sudo apt install ncdu –y После установки нужно запустить ncdu. И мы увидим очень красивую картинку. Но вернемся к стандартной утилите du. С помощью данной утилиты мы можем указать в какой папке необходим просмотр папок и вывод их размера. du –h /home К сожалению данная утилита умеет взвешивать вес только каталогов и не показывает размер файлов. Для того, чтобы посмотреть размер файлов, мы конечно же можем воспользоваться командой ls –l. А также если мы запустим данную команду с ключем –i мы увидим номера inode файлов. Как вы видите у каждой папки и у каждого файла есть свой индексный дескриптор. Далее команды, которые нам позволят проверить целостность файловой системы. Команда fsck man fsck Как написано в описании утилиты она позволяет проверять и чинить Linux файловую систему. Мы можем видеть, например, в oперационной системе Windows, что в случае некорректного завершения работы операционной системы, операционная система запускает утилиту проверки целостности checkdisk. В случае необходимости данная утилита исправляет найденные ошибки в файловой системе. Следовательно, в Linux данные операции выполняет утилита fsck, причем может работать с различными файловыми системами Linux операционных систем. Мы можем попробовать воспользоваться утилитой fsck /dev/sdc1. В ответ от операционной системы мы получим следующее: Как мы видим операционная система вернула в ответ на команду для работы с данным разделом, что данный раздел с монтирован и операция прервана. Аналогичную ситуацию мы будем наблюдать в операционной системе Windows, если мы будем пытаться рабочий раздел проверить на ошибки. Т.е возникнет следующая ситуация. Если мы будем проверять дополнительный логический диск, где не установлена операционная система Windows, то данный раздел на время проведения тестов будет отключен и будут идти проверки. А если мы попытаемся проверить основной раздел, куда установлена операционная система Windows, то операционная система не сможет запустить данную утилиту и попросит перезагрузиться для запуска данной утилиты. В нашем случае придется делать точно так же. Поэтому, чтобы проверить необходимо отключить (от монтировать раздел) и после уже этого запускать утилиту. Из вывода можно заметить утилита пыталась запустить другую утилиту e2fsck, которая в данном случае отвечает за проверку файловых систем extext2ext3ext4. О чем достаточно подробно написано в описании данной утилиты. По сути fsck запускает утилиту ту, которая идет в пакете утилит для конкретной файловой системы. Бывает такое, что fsck не может определить тип файловой системы. Для того, чтобы утилита все-таки проверила файловую систему, необходимо отмонтировать логический раздел. Воспользуемся командой umount /mnt. И запускаем непосредственно саму проверку fsck –t ext4 /dev/sdc1 Проходит проверка моментально. Команда fsck запустилась и запустила необходимую утилиту для файловой системы. По результатам проверки файловая система чистая, найдено 11 файлов и 66753 блока. При обнаружении проблем, утилита предложила нам исправить. Для того, чтобы посмотреть на проверку другой файловой системы, необходимо переформатировать раздел. mkfs –t xfs –f /dev/sdc1 При попытке запуска проверки без указания типа файловой системы fsck /dev/sdc1 Как мы видим, утилита fsck отказалась проверять или вызывать утилиту, а явно указала на ту которую необходимо использовать в данном случае. Для проверки используем xfs_ncheck /dev/sdc1. А для починки файловой системы xfs_repair /dev/sdc1. Перемонтируем обратно наш раздел mount /dev/sdc1 /mnt Теперь можно получить информацию по разделу xfs_info /dev/sdc1 Или сделать дамп файловой системы xfs_metadump /dev/sdc1 dump.db Переформатируем файловую систему ext4 на разделе обратно /dev/sdc1. Перемонтируем в папку mnt. Создадим текстовый файл с текстом на данном разделе nano /mnt/test.txt Далее мы можем посмотреть следующую утилиту man debugfs. Данная утилита умеет очень многое: очень много ключей и различных опций. Чистит, удаляет, чинит, работает с inodes. Зайти в данную утилиту можно debugfs –w /dev/sdc1. Набираем help и видим кучу опций. Можно попросить данную утилиту вывести содержимое нашего тома. ls В результате данной команды мы увидим 2 объекта с номерами их inode. Теперь мы можем сказать rm test.txt и файл будет удален, точнее не сам файл а его индексный дескриптор., если посмотреть опять с помощью команды ls. То будет видно, что количество объектов не изменилось. Следовательно, мы этот файл в журналируемых файловых системах можем восстановить, восстановив его индексный дескриптор. Но только до тех пор, пока на место удаленного файла не был записан другой. Именно поэтому если требуется восстановление информации на диске, рекомендуется немедленно отключить ПК и после этого отдельно подключать носитель информации для процедуры восстановления. Так же на данном принципе основано сокрытие информации в Информационной безопасности, когда на носитель информации в 2 или 3 прохода записываются псевдослучайные данные. Для восстановления данных мы можем использовать команду lsdel. Данная команда показывает удаленные файлы. В принципе на данном debugfs и основаны многие программы для восстановления данных. На скриншоте хорошо видно, что был удален 1 inode с номером 12 дата и время, другие параметры. Для выхода используем q. Для восcтановления используем undel test.txt, команда, номер индексного дескриптора и имя файла с которым оно восстановится. Убедиться, что файл на месте можно с помощью команды ls. Утилита debagfs помогает восстанавливать файлы и вообще работать с файловой системой на низком уровне. Конечно восстанавливать по 1 файлу, это очень трудозатратно. Поэтому вот эти низкоуровневые утилиты используют более современные программы. Еще одна утилита dumpe2fs. Можно вызвать справку по данной утилите man dumpe2fs Данная команда делает дамп информации, которая хранится на данных томах. Выполним данную команду для /dev/sdc1 Мы получим следующий вывод информации. Данный вывод был сделан на стандартный вывод – т.е экран. Сделаем вывод в файл, например: dumpe2fs /dev/sdc1 > /tmp/output.txt Мы можем просмотреть информацию в выведенную в файл поэкранно с помощью less /tmp/output.txt В выводе мы сможем увидеть основные опции данной файловой системы. Переделаем файловую систему, текущую ext4 в ext2. Это можно сделать 3-мя способами с помощью утилит: mkfs, mke2fs, mkfs.ext2. Перед переформатирование необходимо отмонтировать файловую систему. После форматирования и перемонтируем. Опять снимаем дамп и передаем по конвееру на команду grep чтобы посмотреть features. Получаем следующее: dumpe2fs /dev/sdc1 | grep features И видим, что файловые системы отличаются, более новая файловая система имеет фишку журналирования has_jounal. Данная опция так же присутствует в ext3. Т.е в данных файловых системах имеются журналы с помощью которых удобно восстанавливать. Есть интересная утилита tune2fs – настраивать файловую систему. man tune2fs Данная утилита, как следует из описания настраивает настраиваемые параметры файловых систем. Например, у нас есть не журналируемая файловая система ext2. Мы даем команду tune2fs –O has_journal /dev/sdc1. Данная утилита добавляет опцию ведения журнала к файловой системе ext2. Или можем наоборот сказать удалить опцию поставив значок ^.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59