6 мин для чтениякоманда fdisk в linux (создание разделов диска)

Запись USB Flash из Calculate Linux

Помимо в Calculate Linux есть собственная утилита записи образа системы на флешку — . Утилита имеет ряд особенностей, среди которых:

  • использование файловой системы Fat32
  • поддержка записи образа без форматирования флешки

Использование файловой системы Fat32 позволит вам дописывать файлы на Flash, обновлять образ, использовать для загрузки несколько систем.

Для начала разметьте флеш-накопитель. Для этого выполните следующие действия:

fdisk /dev/sdb

Добро пожаловать в fdisk (util-linux 2.30.2).
Изменения останутся только в памяти до тех пор, пока вы не решите записать их.
Будьте внимательны, используя команду write.

Команда (m для справки): n
Тип раздела
   p   основной (0 первичный, 0 расширеный, 4 свободно)
   e   расширенный (контейнер для логических разделов)
Выберите (по умолчанию - p):

Используется ответ по умолчанию p
Номер раздела (1-4, default 1): 
Первый сектор (2048-30871551, default 2048): 
Последний сектор + число секторов или + размер{K,M,G,T,P} (2048-30871551, default 30871551

Создан новый раздел 1 с типом 'Linux' и размером 14.7 GiB.

Команда (m для справки): w
Таблица разделов была изменена.
Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.

Чтобы посмотреть список доступных устройств, выполните следующую команду:

cl-install-flash -d list

Диск для установки:
[/dev/sda1]  /dev/sda1 (ATA KINGSTON SV300S3)
[/dev/sda2]  /dev/sda2 (ATA KINGSTON SV300S3)
[/dev/sda3]  /dev/sda3 (ATA KINGSTON SV300S3)
[/dev/sda4]  /dev/sda4 (ATA KINGSTON SV300S3)
[/dev/sda5]  /dev/sda5 (ATA KINGSTON SV300S3)
[/dev/sdb1]  /dev/sdb1 (UFD 3.0 Silicon-Power16G)

В данном примере имя флеш-накопителя — /dev/sdb1.

Теперь выполните:

cl-install-flash —iso cldx-17.12.2-x86_64.iso -d /dev/sdb1 —format

Установка на Flash
* Установочный образ: Calculate Linux Desktop Xfce 17.12.2 x86_64 20180219
* Диск для установки: /dev/sdb1 (UFD 3.0 Silicon-Power16G)
* Форматировать USB Flash: да

Запустить процесс? (Yes/No): yes
* Форматирование разделов ...                                                                                            
* Распаковка образа системы ...                                                                                          
* Конфигурирование Flash-установки ...                                                                                   
* Подготовим систему для перезагрузки ...                                                                                
* Отключение устанавливаемого дистрибутива ...                                                                           
* Система установлена!

Информация о дисковом носителе

1. df

Команда выдает информацию о подмонтированных разделах и объемах, занимаемых ими:

df -h

Пример ответа:

Файловая система              Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/sys-root             25G          11G   15G           41% /
devtmpfs                        1,9G            0  1,9G            0% /dev
tmpfs                           1,9G         4,0K  1,9G            1% /dev/shm
tmpfs                           1,9G         193M  1,7G           11% /run
tmpfs                           1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/sda1                      1014M         186M  829M           19% /boot

2. fdisk

Подробная информация о диске и его разделах:

fdisk /dev/sda -l

Ответ:

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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 label type: dos
Disk identifier: 0x000d5e55

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

3. iotop

Команда позволяем увидеть загруженность дисковой системы. Утилиты может не быть в системе — сначала ее нужно установить.

а) на Ubuntu / Debian:

apt-get install iotop

б) на CentOS / Red Hat:

yum install iotop

После установки утилита запускается командой:

iotop

Вывод похож на top:

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd —swi…
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 %
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
 1542 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 %
 …

4. smartmontools

Утилита позволяет получить SMART дисковых накопителей. По умолчанию, она не установлена — установка выполняется из репозитория.

а) на Ubuntu / Debian:

apt-get install smartmontools

б) на CentOS / Red Hat:

yum install smartmontools

После установки можно использовать:

smartctl -A /dev/sda

* в данном примере мы увидим SMART для диска sda.

Если мы хотим получить информацию по всем дискам, вводим команды по очереди для каждого или:

find /dev -name ‘sd’ -exec smartctl -A {} \;

Explanation of each device in lsblk command output

          df -hTP /mnt/rh
          Filesystem                                 Type     Size  Used Avail Use% Mounted on
          /xfer/isos/rhel-server-7.4-x86_64-boot.iso iso9660  456M  456M     0 100% /mnt/rh
  • Next, we have the sr0 device which denotes the cdrom. The RM field for this device is 1 indicating that it’s removable.
  • Then we see sda which is a disk device followed by sda1 and sda2 which are partitions.
  • sda1 is mounted as /boot file system, and sda2 partition is under LVM control and resulting from this we can view the slave or child logical volumes are using this physical volume in a tree-like format.
  • Each of the logical volumes being displayed in the output has a file system mounted on them mentioned in the mount point field.

Example 2: If we do not want to view the output in a tree-like format, then we can use the -l option to display the output in a list format:

 $ lsblk -l
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0  208M  0 loop
loop1                       7:1    0  456M  0 loop /mnt/rh
sr0                        11:0    1 1024M  0 rom
sda                         8:0    0   60G  0 disk
sda1                        8:1    0  512M  0 part /boot
sda2                        8:2    0 59.5G  0 part
os_vg-root_lv (dm-0)      253:0    0   16G  0 lvm  /
os_vg-swap_01_lv (dm-1)   253:1    0    4G  0 lvm  
os_vg-tmp_lv (dm-4)       253:4    0    2G  0 lvm  /tmp
os_vg-var_lv (dm-5)       253:5    0   10G  0 lvm  /var
os_vg-hpds_lv (dm-6)      253:6    0    6G  0 lvm  /var/opt/perf/datafiles
os_vg-kickstart_lv (dm-7) 253:7    0    4G  0 lvm  /kickstart
sdd                         8:48   0    2G  0 disk
sdb                         8:16   0   32G  0 disk
xfer_vg-lvol1 (dm-3)      253:3    0   32G  0 lvm  /xfer
sdc                         8:32   0   24G  0 disk
kdump_vg-kdump_lv (dm-2)  253:2    0   24G  0 lvm
sde                         8:64   0    3G  0 disk

Example 3: We cause the -o flag to filter out only those fields for which we’d like the output to be reported. For example, we could type the following command to report just the NAME, SIZE and MOUNPOINT attributes for the block devices.

 $ lsblk -o NAME,SIZE,MOUNTPOINT
NAME                           SIZE MOUNTPOINT
loop0                          208M
loop1                          456M /mnt/rh
sr0                           1024M
sda                             60G
|-sda1                         512M /boot
`-sda2                        59.5G
  |-os_vg-root_lv (dm-0)        16G /
  |-os_vg-swap_01_lv (dm-1)      4G 
  |-os_vg-tmp_lv (dm-4)          2G /tmp
  |-os_vg-var_lv (dm-5)         10G /var
  |-os_vg-hpds_lv (dm-6)         6G /var/opt/perf/datafiles
  `-os_vg-kickstart_lv (dm-7)    4G /kickstart
sdd                              2G
sdb                             32G
`-xfer_vg-lvol1 (dm-3)          32G /xfer
sdc                             24G
`-kdump_vg-kdump_lv (dm-2)      24G
sde                              3G

Example 4: We can use the -n option to omit the printing of header lines and -d option to print top-level devices only.

 $ lsblk -dn
loop0   7:0    0  208M  0 loop
loop1   7:1    0  456M  0 loop /mnt/rh
sr0    11:0    1 1024M  0 rom
sda     8:0    0   60G  0 disk
sdd     8:48   0    2G  0 disk
sdb     8:16   0   32G  0 disk
sdc     8:32   0   24G  0 disk
sde     8:64   0    3G  0 disk

Example 5: Using this can be useful in scripts. I’ll demonstrate this by writing a quick one-liner using awk which will print the total storage of the physical volumes attached to the server.

 $ lsblk -dn -o NAME,TYPE,SIZE | awk '/disk/ {sum+=$NF} END {print sum, "GB"}'

121 GB

I’ll just do a quick breakdown of the awk section.

  • /disk/ is a search term for the word disk. It’ll filter out all disk devices from the input. We can use regular expressions as well.
  • The AWK built-in variable $NF represents the last column in the input (space separated fields) and by using += we iterate over this column and increment the value of the variable sum with the value of $NF in the next row. This continues until the last row is encountered.
  • The END block ensures that what follows is executed only once at the end of the awk statement.
  • Following the END block, we have a print statement which prints the value of sum obtained after adding the value of $NF over all rows in the input.
  • Since we are performing an arithmetic operation on the given field, awk will discard the ‘G’ appended at the end of the SIZE filed in the lsblk output.

Post Views:
41,156

The following two tabs change content below.

Sahil Suri

He started his career in IT in 2011 as a system administrator. He has since worked with HP-UX, Solaris and Linux operating systems along with exposure to high availability and virtualization solutions.
He has a keen interest in shell, Python and Perl scripting and is learning the ropes on AWS cloud, DevOps tools, and methodologies. He enjoys sharing the knowledge he’s gained over the years with the rest of the community.

Latest posts by Sahil Suri

  • Setting up chrooted ssh jails in Linux — October 8, 2019
  • How To exclude copying of specific directories in Linux using cp/scp/rsync — October 7, 2019
  • Docker container ports explained — September 27, 2019
  • Docker Volumes explained — September 25, 2019
  • Docker networking commands explained — September 24, 2019

Организация разделов жесткого диска

Разбиение жесткого диска — это определение областей диска, которые операционная система будет использовать в качестве отдельных разделов или томов.

При организации разделов диска в его первый сектор (цилиндр 0, головка 0, сектор 1) заносится главная загрузочная запись (Master Boot Record — MBR). В ней содержатся сведения о том, с каких цилиндров, головок и секторов начинаются и какими заканчиваются имеющиеся на диске разделы. В этой таблице также содержатся указания для системной BIOS, какой из разделов является загрузочным, т.е. где следует искать основные файлы операционной системы.

Для разбиения жестких дисков можно использовать специальное программное обеспечение сторонних разработчиков или можно воспользоваться программами уже интегрированными в устанавливаемую систему. Системы Windows 2000, XP, Vista и 7 имеют в своем составе программу DISKPART.

Программу DISKPART

Также создать разделы и выполнить их форматирование можно с помощью инструмента «Управление дисками» в этих операционных системах.

Программа Управление дисками

Все версии Windows, начиная с Windows 95, могут выполнять операции создания разделов и форматирования в процессе своей установки. Программы разбиения формируют загрузочную запись MBR таким образом, чтобы диск мог быть распознан как один или несколько томов для хранения файлов. Наличие нескольких разделов также позволяет сосуществовать на одном жестком диске нескольким операционным системам. Независимо от того, какая операционная система используется, она должна поставляться с утилитами DISKPART и Управление дисками, которые могут применяться для создания разделов на жестком диске.

Программы DISKPART позволяют создать два различных типа разделов диска: основной и дополнительный. Основной раздел может быть загрузочным, а дополнительный не может. Если в компьютере установлен один жесткий диск, то хотя бы его часть должна быть основным разделом при условии, что компьютер будет загружаться с этого жесткого диска. Основному разделу назначается буква C: диска, а дополнительным — остальные буквы, а именно — D:, Е: и т.д. Один дополнительный раздел может содержать одну букву тома (логический диск DOS) или же несколько логических дисков.

Термин «логический диск DOS» не подразумевает использования только DOS — может работать любая операционная система: Windows 95, 98, Me, NT, 2000, XP, Vista, 7, Linux и т.д.

В зависимости от используемой версии Windows может понадобиться разделить диск на несколько логических. Оригинальные версии Windows 95 и MS-DOS поддерживают только файловую систему FAT16, позволяющую хранить не более 65536 файлов на диске, при этом объем раздела не может превышать 2,1 Гбайт. Таким образом, жесткий диск объемом 10,1 Гбайт в этих операционных системах должен быть разделен минимум на пять дисков.

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

  • C: — операционная система и приложения;
  • D: — данные.

В приведенном примере основной и дополнительный разделы будут организованы следующим образом:

  • C: — основной раздел;
  • D: — логическое устройство (том) в дополнительном разделе.

В операционных системах Wndows XP, Vist и 7 есть ограничения на количество создаваемых основных разделов жесткого диска, их количество составляет 4. Лично я предпочитаю создавать только один основной раздел, хотя в некоторых исключительных случаях может потребоваться создание и всех четырех.

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

Подключить и примонтировать диск

Расскажу, как подключить и настроить новый физический или виртуальный диск в Debian. У меня в системе есть один диск — /dev/sda. Я подключил к ней новый жесткий диск sdb. Хочу его отформатировать в файловую систему xfs и примонтировать в каталог /mnt/backup.

Разметка диска

Вы можете не создавать разделы на жестком диске, а создать файловую систему прямо по всему диску. Делать так не рекомендуется, хотя лично я никаких проблем не получал при таком использовании диска. С разделами просто удобнее, так как ими можно оперировать — изменять, перемещать, расширять. добавлять и т.д.

Создадим один раздел на диске с помощью утилиты cfdisk.

# cfdisk /dev/sdb

Если диск чистый, то вам будет предложено создать таблицу разделов на ней. Я обычно gpt создаю. Дальше через графический интерфейс создайте раздел на весь диск и укажите type — Linux filesystem.

Как закончите, сохраняйте изменения. Вас попросят подтвердить запись, написав yes. Пишите полное слово, не просто y, а именно yes, иначе изменения не будут записаны. Теперь надо обновить таблицу разделов. Иногда система автоматически не видит новые разделы, а требует перезагрузку, чтобы их увидеть. Перезагружаться не обязательно, достаточно запустить программу partprobe.

# partprobe -s

Если ее нет в системе, то установите пакет parted.

# apt install parted

Создание файловой системы ext4, xfs

Раздел на новом диске создали. Теперь его надо отформатировать в файловую систему xfs. Это не родная система для Debian, поэтому нужно поставить отдельный пакет xfsprogs для работы с ней.

# apt install xfsprogs

Создаем файловую систему xfs на новом диске.

# mkfs.xfs /dev/sdb1

Если вам нужно создать файловую систему ext4, то ничего ставить дополнительно не нужно. Сразу форматируете раздел в ext4 командой:

# mkfs -t ext4 /dev/sdb1

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

# mkdir /mnt/backup
# mount /dev/sdb1 /mnt/backup

Проверяем, что получилось.

# df -h

Посмотрим, какую метку получил новый раздел с помощью blkid.

Метку будем использовать для того, чтобы монтировать диск автоматически при загрузке системы. Для этого редактируем файл /etc/fstab. Добавляем в самый конец новую строку, чтобы получилось примерно так.

/dev/mapper/debian10--vg-root / ext4 errors=remount-ro 0 1
UUID=88c4c0aa-be17-4fd9-b1b7-5c8be142db77 /boot ext2 defaults 0 2
UUID=415236b0-68bd-4f27-8eaf-5e8ab49d98d7 /mnt/backup xfs defaults 0 1

Обязательно следите за тем, чтобы в конце файла fstab был переход на новую пустую строку

Это важно. Если не сделать переход на пустую строку, система не загрузится.

Очень внимательно редактируйте fstab. Ошибка с этим файлом может привести к тому, что система не будет грузиться. Сам сталкивался с этим неоднократно. Я всегда убеждаюсь, что корректно отредактировал fstab перезагрузкой системы. У меня были ситуации, когда файл правился с ошибкой, а потом система не перезагружалась месяцами. Через пол года сделал ребут и система не загрузилась. Это был гипервизор с кучей виртуалок. Было не по себе от такого сюрприза. Оказалось, что была ошибка в fstab, которую оперативно исправил, благо был доступ к консоли. Внимательно за этим следите.

Поясню еще, почему использовали метку диска, а не название диска в системе — /dev/sdb1. Раньше я всегда так и делал. Ну как раньше — лет 7-10 назад. Потом пошли какие-то изменения и стали возникать ситуации, что после добавления новых дисков в систему, менялись системные названия дисков. Когда сталкиваешься с этим впервые — впадаешь в ступор. Вроде только добавил диск в систему, а у тебя все сломалось. То, что было /dev/sdb стало /dev/sdc со всеми вытекающими последствиями. Выход из этой ситуации — использовать метки разделов, а не названия. Метки не меняются.

Работа с дисками[править]

См. также ТестированиеКомпьютера

Не рекомендуется использовать программы fdisk/cfdisk для первичного разбиения диска, один из разделов в котором предназначен для загрузки Windows. Используйте parted.

0. Создать загрузочную запись
См. man ms-sys или sys в DOS/Win95/Win98 или fixboot в консоли восстановления

1. Увидеть, что пишет система о дисках при загрузке

# dmesg | grep sd

или, на старых (< 2.6.18) ядрах

# dmesg | grep hd 

2. Вывести перечень всех разделов и всех дисков

# fdisk -l

либо команда

# blkid

3. Полная информация о диске

# hdparm -I /dev/sda

4. Вывести информацию о состоянии диска

# smartctl -a /dev/sda

Запустить внутренний тест диска

# smartctl -t short /dev/sda

или

# smartctl -t long /dev/sda

5. Программа работы с разделами диска

# parted /dev/sd? 

6. Программы восстановления потерянных разделов

# testdisk (более user-friendly)
# gpart (более могучая, но надо тщательно читать man)

7. Графическая программа для работы с разделами диска

$ qtparted 

8. Вывод температуры диска

# hddtemp /dev/sda

9. Простая программа работы с разделами диска

# cfdisk 

10. Восстановление файлов на разделе ext2

$ man recover

11. Сканирование диска на сбойные сектора (вместо badblocks)

# diskscan

12. Восстановление стёртых файлов с любых файловых систем

# photorec из пакета testdisk

Таблица соответствия устройствправить

Таблица соответствия IDE-устройств

Устройство Подключение
/dev/hda Master на IDE0 (Primary)
/dev/hdb Slave на IDE0 (Primary)
/dev/hdc Master на IDE1 (Secondary)
/dev/hdd Slave на IDE1 (Secondary)

Для SATA-устройств (так же как и для SCSI) чёткого порядка именования нет, устройствам выдаются имена sda,sdb,… в порядке их обнаружения системой.

Как пользоваться smartctlправить

# smartctl -a /dev/sda

Смотрим на следующие параметры:

  1 Raw_Read_Error_Rate     0x000b   100   100   051    Pre-fail Always       -       11
  5 Reallocated_Sector_Ct   0x0033   051   051   010    Pre-fail Always       -       101
  7 Seek_Error_Rate         0x000b   253   253   051    Pre-fail Always       -       0
197 Current_Pending_Sector  0x0033   253   253   010    Pre-fail Always       -       0
198 Offline_Uncorrectable   0x0031   253   253   010    Pre-fail Offline      -       0
200 Multi_Zone_Error_Rate   0x000b   100   100   051    Pre-fail Always       -       0
201 Soft_Read_Error_Rate    0x000b   100   100   051    Pre-fail Always       -       2

Если вкратце, то это все означает, что у вашего диска есть

проблемы

с поверхностью диска и часть секторов уже переназначена на запасные (параметр Reallocated_Sector_Count), а часть вообще потеряна (параметр Offline_Uncorrectable). Когда первый параметр достигнет нуля, есть большая вероятность появления bad секторов. Но эта вероятность есть и сейчас, поскольку нет 100% вероятности, что переназначенный сектор содержит ту же информацию, что и раньше. Я бы вам посоветовал озаботиться сохранением всех важных данных на более надежном носителе.

Надо сказать, что диск в подобном состоянии вполне еще может послужит в качестве дискеты и выбрасывать его рано :):)

  • Dmitry (Mothlike) Marochko
  • Vitaly Lipatov
Добавить комментарий

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

Adblock
detector