Как я могу объединить 2 образа дисков в один с 2 разделами?

Сценарий Bash для печати номеров строк для любых строк в файле2, которых нет в файле1:

#!/usr/bin/env bash

# read files into arrays
mapfile -t a < file1
mapfile -t b < file2

# copy file1 into an associative array
declare -A lines
for i in "${!a[@]}" ; do
  lines["${a[$i]}"]=$i
done

# loop through file2 and report any line numbers for lines missing from file1
for i in "${!b[@]}" ; do
    if [ "${lines[${b[$i]}]}" == "" ] ; then
        # echo line number for extra line
        echo $(($i + 1))
    fi
done
3
08.04.2016, 15:32
1 ответ

Вам не нужен root. Вы можете запустить "fdisk someimage.hdd", если у вас есть доступ к этому файлу , ты в порядке. Вы также можете использовать dd для частей этого файла, которые соответствуют разделам, используя параметры offset и notrunc для dd.

Однако указывать смещения вручную гораздо неудобнее, чем использовать устройства разделов с dd. Здесь может пригодиться root-доступ - вы можете использовать команду «losetup» для создания блочных устройств обратной петли для вашего образа и его разделов.

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

И есть еще один способ - после того, как вы один раз создадите образ и определите смещения, вы можете извлечь начало образа диска, содержащего таблицу разделов, как отдельный файл, и вам не нужно использовать fdisk и dd для вашего будущие перестройки образов - просто объедините («кот») таблицу разделов и два образа разделов в образ диска.(В некоторых случаях вам может потребоваться добавить файл суффикса диска после разделов, аналогичный файлу префикса диска, содержащему таблицу разделов, поскольку в конце диска может быть таблица разделов резервной копии.)

{ {1}}
1
27.01.2020, 21:39

Теги

Похожие вопросы