1

Допустим, диск имеет позицию от 0 до 4049 МБ. если размер раздела 1 составляет 50 МБ, значит, он занял позицию от 0 до 49?

Мое предположение исходит из следующей истории:

Я пытаюсь создать резервную копию моей системы Linux (Raspberry PI). Затем я гуглил, как мне это сделать, и уменьшил его до размера, а не сделал резервную копию всей SD-карты.

Затем я нашел ответ, который говорит, что сначала я должен проверить, насколько велики загрузочный раздел и основной раздел (с помощью gparted). Затем запустите дд, например

dd if=/dev/sdb of=sysbackup.img bs=1M count=1024

Так что это количество равно размеру двух разделов.

Но я думал, что dd просто просканирует весь диск по порядку. Это означает, что разделы также расположены на самом деле в порядке?

1 ответ1

1

Расположение разделов описывается таблицами разделов. На сегодняшний день двумя наиболее распространенными типами таблиц разделов являются Master Boot Record (MBR) и GUID Partition Table (GPT). Детали различаются, но в обоих случаях несколько секторов диска отводятся для описания того, где начинается и заканчивается каждый отдельный раздел, а также для хранения дополнительных метаданных, таких как код типа, имя (только GPT) и т.д. на. ОС знает достаточно, чтобы найти таблицу разделов на диске, выяснить, какой тип она использует (MBR, GPT или что-то более экзотическое), а затем интерпретировать диапазон секторов как раздел, отличный от другого диапазона. сектора.

В случае как MBR, так и GPT, порядок разделов в таблице разделов и, следовательно, присвоенные им номера разделов (например, /dev/sda1 и /dev/sda2 ) не обязательно соответствуют порядку, в котором разделы появляются на диске. То есть /dev/sda2 может занимать секторы с 40 по 1 126 439, а /dev/sda1 может занимать секторы с 1 126 440 до 15 628 053 134. Также может быть нераспределенное пространство (аналогично частям книжной полки, где нет книг), области, используемые системой разбиения, и т.д. Начальная точка первого раздела не полностью стандартизирована, хотя некоторые значения встречаются чаще, чем другие. Таким образом, если ваша цель - создать резервную копию всего диска, у вас есть три варианта:

  • Резервное копирование всего диска - вы можете сделать низкоуровневое резервное копирование (используя dd или другое средство) всего диска, от сектора 0 до конца диска. Это приведет к резервному копированию таблицы разделов, содержимого всех разделов и всего, что находится в неразмеченных разделах диска. При восстановлении такой резервной копии она будет выглядеть так же, как оригинал для ОС (задайте или задайте вопросы о модели диска и точном размере диска). Это довольно "тупой" подход, поскольку он не требует знания разделов на диске, используемой таблицы разделов и т.д. Отчасти по этой причине он также относительно неэффективен - вы, вероятно, будете выполнять резервное копирование. области диска, которые на самом деле не используются, что может увеличить размер резервной копии сверх того, что вам, вероятно, нужно. Эта неэффективность, хотя часто и является недостатком, в некоторых случаях может фактически быть преимуществом, например, если структуры данных диска сильно повреждены - вы можете работать с резервной копией, чтобы попытаться восстановить данные, не беспокоясь о повреждении оригинала. Кроме того, вы можете создать резервную копию зашифрованного диска, даже если у вас нет ключа расшифровки.
  • Резервное копирование всего раздела - вы можете использовать dd или аналогичный инструмент для выполнения "тупого" резервного копирования каждого раздела. Когда вы восстанавливаете резервную копию, вам нужно создать новую таблицу разделов, которая, вероятно, должна соответствовать оригиналу. Таким образом, вам может потребоваться сделать резервную копию самой таблицы разделов или, по крайней мере, записать размеры каждого раздела. (Размер файла резервной копии dd может предоставить эту информацию.) Подобно резервному копированию на весь диск, такое резервное копирование, вероятно, будет неэффективным, если большая часть диска не будет разделена и / или сами разделы будут в основном заполнены. Для восстановления требуется больше "смартов", а поскольку восстановленный диск может не полностью соответствовать оригиналу, некоторые ОС и инструменты могут перестать работать. Диск может быть не загрузочным, например. Этот подход является в основном компромиссом между двумя другими методами.
  • Резервное копирование с учетом файловой системы. В этом подходе используется инструмент, который понимает используемые файловые системы в каждом разделе, то есть инструмент считывает NTFS, FAT, ext4fs, HFS+ или любую файловую систему, используемую каждым разделом. Это может быть использование чего-то вроде cp , tar или zip для резервного копирования файлов, использование самой ОС для обработки файловой системы; или это может быть инструмент для конкретной файловой системы, который может выполнять резервное копирование на более низком уровне, не используя неиспользуемые части файловой системы. В любом случае, этот подход требует гораздо больше "умов", чем любой другой подход, но преимущество заключается в том, что резервное копирование, скорее всего, будет быстрее и будет занимать меньше дискового пространства. Недостаток в том, что вам понадобится больше "умов" в инструменте для восстановления резервной копии. Возможно, вам придется предпринять дополнительные шаги, чтобы восстановить загрузочный диск снова, и вам, безусловно, потребуется либо создать резервную копию самой таблицы разделов, либо знать достаточно, чтобы заново создать что-то совместимое. Этот тип резервного копирования является плохим выбором, если исходная файловая система была повреждена, так как инструмент, который считывает файловую систему, может запутаться, пропустить важные данные или даже аварийно завершить работу.

Какой тип инструмента вы хотите использовать, зависит от ваших потребностей. Если вам требуется быстрое резервное копирование или резервное копирование с минимальным объемом пространства, а оригинал не поврежден, вам следует использовать инструмент резервного копирования с поддержкой файловой системы. Если диск маленький или поврежден, вероятно, лучше подойдет резервное копирование всего диска (или, по крайней мере, целого раздела).

В случае резервного копирования с полным разделом или файловой системой, вы должны сделать резервную копию таблицы разделов. Как это сделать, зависит от типа таблицы разделов. В некоторых случаях запись результатов работы инструмента разделения должна быть адекватной. Например, вы можете набрать sudo fdisk -l /dev/sda и вырезать и вставить вывод в текстовый файл, чтобы записать данные разбиения в /dev/sda . Некоторые инструменты предлагают способы записи данных более подробно. Например, мой собственный fdisk GPT (gdisk , cgdisk и sgdisk) позволяет выполнять резервное копирование данных GPT в двоичный файл. Это делается с помощью опции b в главном меню gdisk , с помощью пункта "Резервное копирование" в cgdisk или с помощью параметра командной строки -b /--backup для sgdisk . Необходима ли простая запись отображения инструмента для создания разделов или подробного файла бинарной резервной копии, например, который производит GPT fdisk, зависит от ваших потребностей, которые вы не указали достаточно подробно, чтобы я мог дать совет.

Подробнее о разбиении диска см .:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .