Команда fdisk в linux

Разбиваем диск на разделы. Или обзор GParted

Недавно, примерно неделю назад, приспичило мне создать / отредактировать партиции на моей карте памяти — Toshiba Mini SD Memory Card, для последующей работы с ней.

Зашел в Установку / удаления программ и ввел ключевое слово «partition», сразу же отразился список программ, которые соответствовали моему запросу. Немного почитав, наткнулся на одну программу — GParted. Просмотрев ее описание, понял что она для GNOME, хотя сам сижу на KDE. Попробую, подумал я и начал устанавливать. GParted потянула несколько GNOME’вских пакетов, но это нормально.

Поработав немного, понял что это то что надо

Итак, после того как запускаем GParted, выходит запрос на ввод пароля от ROOT. Я думаю тут и так понятно, почему

После чего видим карту нашего диска, где и какие разделы созданы. Меню «GParted», которое располагается на вверху, позволяет:

  1. Refresh Devices — Пересканировать носители информации на вашем компьютере;
  2. Devices — Выбрать с каким носителем вы хотите работать, если у вас в компьютере, напрмер 2 HDD (как у меня) или еще карта памяти / флешка имеется.

Далее идет меню «Edit», котрое предлогает:

  1. Undo Last Operations — Отметнить последнию операцию;
  2. Apply All Operations — Применить операции;
  3. Очистить лог ваших действий или оперции, которые GParted должен сделать с вашими партициями. GParted не делает все сразу, в реальном времени. Он сначало создает список действий, которые вы указываете, потом он их делает, когда вы нажимаете специальную кнопку, в нашем случае «Apply All Operations».

Следующее — «View»:

  1. Devices Information — Посмотреть информацию об устройствах;
  2. Pending Information — Посмотреть список действий, если такие имеются, которые вы задали для GParted. После нажатия на данную кнопку, внизу отобразится небольшое окно со списком.

Далее — «Devices», предлогает нам только одно действие:

  1. Create Partition Table — Создать таблицу партиций на вашем диске. На этой опции мы остановися подробней. Будем расматривать пример на бызе моей Toshiba Mini SD Memory Card 8 ГБ. Нажимаем на Create Partition Table и выйдет сообщение, что все ваши файлы будут утерены:

Как видно из сообщения, нам также предлогается выбрать тип создаваемой нами таблицы партиций. Доступны следующие:

  • msdos
  • aix
  • amiga
  • bsd
  • dvh
  • gpt
  • mac
  • pc98
  • soon
  • loop

После того, как выбрали нужную вам, выбираем и нажимаем «Применить». Начнется преобразование и выйдет следующее окно:

Теперь у нас все устройство, как одна неразмеченная облась.

Следующее меню — «Partition»:

  1. New — Создать новый раздел на неразмеченной области. Заходим туда:

Что мы тут видим:

  1. New size — Задать размер нашего нового раздела;
  2. Параметры — «Free space preceding (MiB)», «Free space following (MiB) и Align to:» позволяют работать с MiB — MebiByte.
  3. Create as — Создать новый раздел как:
  • Основной раздел;
  • Логический раздел;
  • Расширенный раздел.
  1. File System — Выбрать файловую систему для нового раздела:
  • btrfs
  • ext2
  • ext3
  • ext4
  • fat16
  • fat32
  • hfs
  • hfs+
  • jfs
  • linux-swap
  • ntfs
  • raiser4
  • raiserfs
  • ufs
  • xfs
  1. Label — Придумать лейбл вашего раздела.

Как все сделали, нажимаем на «Добавить» и появится следующее окно:

Я просто так для примера, взял файловую систему ext3. Как мы видим снизу, появолсь очередь действий, которую GParted должен сделать. Заходим в меню «Edit» и нажимаем «Apply All Operation».

После чего будет создан раздел с файловой системой ext3. Как все будет готово, в меню «Partition» будут доступны новые опции:

  1. Resize / Move — Изменить размер / переместить раздел;
  2. Format to — Переформатировать в другую файловую систему;
  3. Unmount — Отмонтировать;
  4. Check — Проверить новый раздел;
  5. Label — Сменить лейбл раздела.

Следующее меню — «Help», я думаю тут рассказывать нечего

Мне нравится как работает GParted, может у кого то есть более лучшие альтернативы, с радостью бы посмотрел / выслушал

Монтирование HDD через терминал на Ubuntu/Debian

Для монтирования дисков через терминал набираем следующую команду:

Директория должна существовать.

Монтирование директорий

Если при монтировании директорий терминал выдает следующее

Значит Вы пытаетесь примонтировать одну директорию в другую. Для исправления данной ошибки наберите следующую команду используя опцию —bind:

Монтирование файлов

Возможно, не только монтирование разделов linux, но и монтирование
файлов, если они содержат файловую систему, например, образов дисков.
Монтирование образа диска linux работает точно так же:

Автоматическое монтирование диска при загрузке системы

Для автоматического монтирования разделов диска воспользуемся файлом fstab. Также вам необходимо знать вашего диска.

и редактируем в соответствии с моим листингом:

Ваш_UUID_диска — смотрим командой в начале статьи

Чтобы неперезагружать систему набираем команду:

Теперь после перезагрузки системы раздел диска автоматически будет примонтирован в директорию /home/Music.

Причины ошибок в файле Uuid.dll

Большинство ошибок uuid.dll связано с отсутствием или повреждениями файлов uuid.dll. Тот факт, что uuid.dll – внешний файл, открывает возможность для всяческих нежелательных последствий.

Непредвиденные завершения работы вашего компьютера или заражение вирусом может повредить uuid.dll, что приведет к ошибкам dll. Когда файл uuid.dll повреждается, он не может быть нормально загружен и выведет сообщение об ошибке.

В других случаях ошибки файла uuid.dll могут быть связаны с проблемами в реестре Windows. Нерабочие ссылки DLL файлов могут помешать зарегистрировать файл dll должным образом и вызвать ошибку uuid.dll. Эти нерабочие ключи реестра могут появиться в результате отсутствия файла DLL, перемещения файла DLL или ввиду наличия остаточной ссылки DLL файла в реестре Windows после неудачной установки или удаления программы.

Более конкретно, данные ошибки uuid.dll могут быть вызваны следующими причинами:

  • Ошибочные или поврежденные записи реестра для uuid.dll
  • Вирус или вредоносное ПО, повредившее файл uuid.dll.
  • Отказ оборудования Intel Corporation, например, некачественный жесткий диск, вызвавший повреждение файла uuid.dll.
  • Другая программа изменила требуемую версию uuid.dll.
  • Другая программа злонамеренно или по ошибке удалила файл uuid.dll.
  • Другая программа удалила файл uuid.dll.

Examples

var UUID = require('uuid-1345');UUID.v1(function (err, result) {    console.log("Generated a time-based UUID:\n\t%s\n", result);});UUID.v4(function (err, result) {    console.log("Generated a random UUID:\n\t%s\n", result);});UUID.v3({    namespace: UUID.namespace.url,    name: "https://github.com/scravy/uuid-1345"}, function (err, result) {    console.log("Generated a name-based UUID using MD5:\n\t%s\n", result);});UUID.v5({    namespace: UUID.namespace.url,    name: "https://github.com/scravy/uuid-1345"}, function (err, result) {    console.log("Generated a name-based UUID using SHA1:\n\t%s\n", result);});

might result in:

var uuid = new UUID('39888f87-fb62-5988-a425-b2ea63f5b81e');console.log( uuid.version    );console.log( uuid.variant    );console.log( uuid.toString() );console.log( uuid.toBuffer() );
5rfc412239888f87-fb62-5988-a425-b2ea63f5b81e<Buffer 39 88 8f 87 fb 62 59 88 a4 25 b2 ea 63 f5 b8 1e>

Overview

UUID (Universally Unique Identifier), also known as GUID (Globally Unique Identifier) represents a 128-bit long value that is unique for all practical purposes. The standard representation of the UUID uses hex digits (octets):

A UUID is made of up of hex digits  (4 chars each) along with 4 “-” symbols which make its length equal to 36 characters.

The Nil UUID is a special form of UUID in which all bits are set to zero.

In this article, we will have a look at the UUID class in Java.  First, we’ll look at how to use the class itself. Then, we’ll look at the different types of UUIDs and how we can generate them in Java.

2. The UUID Class

The UUID class has a single constructor:

If we want to use this constructor, we need to provide two long values. However, it requires us to construct the bit-pattern for the UUID ourselves.

For convenience, there are three static methods to create a UUID. These are:

This method creates a version 3 UUID from the given byte array.

The randomUUID() method creates a version 4 UUID. This is the most convenient way of creating a UUID.

The third static method returns a UUID object given the string representation of a given UUID.

Let’s now look at how a UUID is structured.

3. Structure

Let’s take the example UUID:

3.1. UUID Variant

A represents the variant which determines the layout of the UUID. All other bits in the UUID depends on the setting of the bits in the variant field. The variant is determined by 3 most significant bit of A:

The value of A in the mentioned UUID is ‘a’. The binary equivalent of ‘a’ (=10xx) shows the variant as 2.

3.2. UUID Version

B represents the version. The version in the mentioned UUID (value of B) is 4.

Java provides methods for getting variant and version of UUID:

These are 5 different versions for variant 2 UUIDs: Time Based (UUIDv1), DCE Security (UUIDv2), Name Based (UUIDv3 and UUIDv5), Random (UUIDv4).

Java provides an implementation for the v3 and v4, but also provides a constructor for generating any type of UUID:

4. The UUID Versions

4.1. Version 1

UUID version 1 is based on the current timestamp, measured in units of 100 nanoseconds from the 15th of October 1582, concatenated with the MAC address of the device where the UUID is created.

If privacy is a concern, UUID version 1 can alternatively be generated with a random 48-bit number instead of the MAC address.

In this article, we’ll this alternative. First, we’ll generate the 64 least and most significant bits as long values:

We can then pass these two values to the constructor of the UUID:

4.2. Version 2

Version 2 is based on a timestamp and the MAC address as well. However, RFC 4122 does not specify the exact generation details, therefore, we won’t look at an implementation in this article.

4.3. Version 3 & 5

The UUIDs are generated using the hash of namespace and name. The namespace identifiers are UUIDs like Domain Name System (DNS), Object Identifiers (OIDs), URLs, etc.

The only difference between UUIDv3 and UUIDv5 is the Hashing Algorithm – v3 uses MD5 (128 bits) while v5 uses SHA-1 (160 bits).

Simply put, we truncate the resulting hash to 128-bits and then replace 4 bit for the version and 2 bit for the variant.

Let’s generate type 3 UUID:

Here, it’s important to note that the hex-string for the namespace first needs to be converted to a byte array.

Java doesn’t provide the implementation for type 5. Check our source code repository for the UUIDv5.

4.4. Version 4

The UUID v4 implementation uses random numbers as the source. The Java implementation is SecureRandom – which uses an unpredictable value as the seed to generate random numbers to reduce the chance of collisions.

Let’s generate version 4 UUID:

Let’s generate a unique key using ‘SHA-256′ and a random UUID:

5. Conclusion

In this article, we saw how a UUID is structured, which variants and versions there are. We learned for which versions Java provides an out-of-the-box implementation, and looked at code examples to generate the other versions.

And, as always, the source code of implementation is available over on Github.

Формат

UUID представляет собой 16-байтный (128-битный) номер. В каноническом представлении UUID изображают в виде числа в шестнадцатеричной системе счисления, разделённого дефисами на пять групп в формате 8-4-4-4-12. Такое представление занимает 36 символов:

4 бита обозначают версию («version») UUID, а 1-3 старших бита обозначают вариант («variant») UUID.

Такое разделение на группы основано на структуре UUID:

Структура UUID
Название поля Длина (в байтах) Длина (число 16-ричных цифр) Содержимое
time_low 4 8 целое число, обозначающее младшие 32 бита времени
time_mid 2 4 целое число, обозначающее средние 16 бит времени
time_hi_and_version 2 4 4 старших бита обозначают версию UUID, младшие биты обозначают старшие 12 бит времени
clock_seq_hi_and_res clock_seq_low 2 4 1-3 старших бита обозначают вариант UUID, остальные 13-15 бит обозначают clock sequence
node 6 12 48-битный идентификатор узла

Эти поля соответствуют версиям UUID 1 и 2, которые генерируются на базе времени, но представление 8-4-4-4-12 используется для любых версий UUID.

Microsoft GUID иногда используется с фигурными скобками:

Общее количество уникальных ключей UUID (без учёта версий) составляет 2128 = 25616 или около 3,4 × 1038. Это означает, что генерируя 1 триллион ключей каждую наносекунду, перебрать все возможные значения удастся лишь за 10 миллиардов лет.

UUID со специальным идентификатором может быть преднамеренно использован повторно, для идентификации той же самой сущности в различных контекстах. Например, в Microsoft Component Object Model каждый компонент должен поддерживать стандартный интерфейс «IUnknown». Для этого создан UUID, представляющий «IUnknown». Во всех случаях, когда используется «IUnknown» — при доступе процессов к интерфейсу «IUnknown» в компоненте, или же для реализации поддержки интерфейса «IUnknown» самим компонентом, — всегда происходит отсылка к одному и тому же идентификатору: .

The Alternative

In Windows, there are a couple of alternatives that you can use if UUID idea failed.

The first one is to use your Windows product ID. This is the ID you can retrieve easily from  Control Panel > System and Security > System

But that doesn’t always guarantee the uniqueness of the machine. For example, on those  Windows volume activated or none genuine Windows machines, the Product ID will always be the same. Also keep in mind that if you re-install Windows, this ID might change as well.

The second option is to use the hard drive’s serial number as the unique identifier. That’s almost the better approach if UUID fails, meaning that you can rely on the HDD’s serial number.

The above command will do the trick. It even returns all of the numbers if you have multiple hard drives physically connected to your machine.

API

The nil UUID string (all zeros).

Example:

import{NILasNIL_UUID}from'uuid';NIL_UUID;

Convert UUID string to array of bytes

A valid UUID
returns
throws if is not a valid UUID

Example:

import{parseasuuidParse}from'uuid';uuidParse('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b');

Convert array of bytes to UUID string

-like collection of 16 values (starting from ) between 0-255
Starting index in the Array
returns
throws if a valid UUID string cannot be generated

Example:

import{stringifyasuuidStringify}from'uuid';constuuidBytes=110,192,189,127,17,192,67,218,151,94,42,138,217,235,174,11;uuidStringify(uuidBytes);

Create an RFC version 1 (timestamp) UUID

[] with one or more of the following properties:
RFC «node» field as an of byte values (per 4.1.6)
[] RFC «clock sequence» as a between 0 — 0x3fff
[] RFC «timestamp» field ( of milliseconds, unix epoch)
[] RFC «timestamp» field ( of nanseconds to add to , should be 0-10,000)
[] of 16 random bytes (0-255)
[] Alternative to , a that returns an of 16 random bytes (0-255)
[] If specified, uuid will be written here in byte-form, starting at
Index to start writing UUID bytes in
returns UUID if no is specified, otherwise returns
throws if more than 10M UUIDs/sec are requested

Note: and are only meaningful on the very first call to , where they may be passed to initialize the internal and fields.

Example:

import{v1asuuidv1}from'uuid';uuidv1();

Example using :

import{v1asuuidv1}from'uuid';constv1options={  node0x01,0x23,0x45,0x67,0x89,0xab,  clockseq0x1234,  msecsnewDate('2011-11-01').getTime(),  nsecs5678,};uuidv1(v1options);

Create an RFC version 3 (namespace w/ MD5) UUID

API is identical to , but uses «v3» instead.

️ Note: Per the RFC, «If backward compatibility is not an issue, SHA-1 is preferred.»

Create an RFC version 4 (random) UUID

[] with one or more of the following properties:
[] of 16 random bytes (0-255)
[] Alternative to , a that returns an of 16 random bytes (0-255)
[] If specified, uuid will be written here in byte-form, starting at
Index to start writing UUID bytes in
returns UUID if no is specified, otherwise returns

Example:

import{v4asuuidv4}from'uuid';uuidv4();

Example using predefined values:

import{v4asuuidv4}from'uuid';constv4options={  random0x10,0x91,0x56,0xbe,0xc4,0xfb,0xc1,0xea,0x71,0xb4,0xef,0xe1,0x67,0x1c,0x58,0x36,,};uuidv4(v4options);

Createa an RFC version 5 (namespace w/ SHA-1) UUID

Namespace UUID
[] If specified, uuid will be written here in byte-form, starting at
Index to start writing UUID bytes in
returns UUID if no is specified, otherwise returns

Note: The RFC and namespaces are available as and .

Example with custom namespace:

import{v5asuuidv5}from'uuid';constMY_NAMESPACE='1b671a64-40d5-491e-99b0-da01ff1f3341';uuidv5('Hello, World!',MY_NAMESPACE);

Example with RFC namespace:

import{v5asuuidv5}from'uuid';uuidv5('https://www.w3.org/',uuidv5.URL);

Test a string to see if it is a valid UUID

to validate
returns if string is a valid UUID, otherwise

Example:

import{validateasuuidValidate}from'uuid';uuidValidate('not a UUID');uuidValidate('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b');

Detect RFC version of a UUID

A valid UUID
returns The RFC version of the UUID
throws if is not a valid UUID

Example:

import{versionasuuidVersion}from'uuid';uuidVersion('45637ec4-c85f-11ea-87d0-0242ac130003');uuidVersion('6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b');

Опции и синтаксис fdisk

Синтаксис утилиты ничем не отличается от других команд Linux:

$ fdisk опции устройство

Ей надо передать опции, согласно действия, которое вы хотите выполнить, а также раздел диска или устройство к которому эти действия надо применить. Давайте теперь рассмотрим опции fdisk:

  • -B, —protect-boot — не стирать первые 512 байт диска чтобы не повредить загрузочную запись;
  • -L, —color — настройка цветного вывода, возможные значения auto, never или always;
  • -l, —list — вывести все разделы на выбранных устройствах или если устройств не задано, то на всех устройствах;
  • -o, —output — указывает какие поля данных надо показывать в выводе программы, доступные поля рассмотрим ниже;
  • -u, —units — настраивает формат вывода размера разделов, доступные значения: cylinders, sectors, по умолчанию используется sectors;
  • -w, —wipe — режим стирания файловой системы или RAID с диска, возможные значения auto, never или always по умолчанию используется auto;
  • -W, —wipe-partition — режим стирания файловой системы или RAID из только что созданного раздела. Возможные значения аналогичны предыдущей опции;
  • -h, —help — показать справку по утилите;
  • -v, —version — опция выводит версию утилиты.

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

  • a — включение или выключения флага boot для раздела;
  • d — удалить раздел;
  • F — показать свободное место;
  • l — вывести список известных типов разделов;
  • n — создать новый раздел;
  • p — вывести таблицу разделов;
  • t — изменение типа раздела;
  • i — вывести информацию о разделе;
  • I и O — записать или загрузить разметку в файл сценария sfdisk;
  • w — записать новую таблицу разделов на диск;
  • q — выйти без сохранения;
  • g — создать пустую таблицу разделов GPT;
  • o — создать пустую таблицу разделов MBR.

Теперь вы знаете основные опции и команды fdisk, давайте рассмотрим использование программы.

Восстановление дисков через терминал

Восстановление файловой системы

Если ваша файловая система находится на разделе с адресом /dev/sda1 выполните:

Данная команда сработает только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку.

Восстановление поврежденного суперблока

Обычно эта команда справляется со всеми повреждениями на ура. Но если
вы сделали что-то серьезное и повредили суперблок, то тут fsck может не
помочь. Суперблок — это начало файловой системы. Без него ничего
работать не будет.

Но не спешите прощаться с вашими данными, все еще можно восстановить.
С помощью такой команды смотрим куда были записаны резервные
суперблоки:

На самом деле эта команда создает новую файловую систему. Вместо ext4
подставьте ту файловую систему, в которую был отформатирован раздел,
размер блока тоже должен совпадать иначе ничего не сработает. С опцией
-n никаких изменений на диск не вноситься, а только выводится
информация, в том числе о суперблоках.

Теперь у нас есть резервные адреса суперблоков и мы можем попытаться восстановить файловую систему с помощью каждого из них, например:

Данные команды сработают только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку.

Битые сектора

Или еще мы можем найти битые сектора и больше в них ничего не писать:

Данная команда сработает только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку.

Using persistent naming

There are various applications that can be configured using persistent naming. Following are some examples of how to configure them.

Kernel parameters

To use persistent names in kernel parameters, the following prerequisites must be met. On a standard installation following the installation guide both prerequisites are met:

  • You are using an initramfs image that has udev

    For mkinitcpio, enable either the udev or systemd hook in /etc/mkinitcpio.conf

    in it.

The location of the root filesystem is given by the parameter on the kernel command line. The kernel command line is configured from the boot loader, see . To change to persistent device naming, only change the parameters which specify block devices, e.g. and , while leaving other parameters as is. Various naming schemes are supported:

Persistent device naming and the format, in this example is the LABEL of the root file system.

root="LABEL=Arch Linux"

Persistent device naming and the format, in this example is the UUID of the root file system.

root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3

Persistent device naming and the path format, in this example is the id of the root partition.

root=/dev/disk/by-id/wwn-0x60015ee0000b237f-part2

Persistent device naming and the format, in this example is the PARTUUID of the root partition.

root=PARTUUID=98a81274-10f7-40db-872a-03df048df366

Persistent device naming and the format, in this example is the PARTLABEL of the root partition.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector