Самый простой способ объединить разделы под Debian (Unix)? [закрыто]

У меня есть два раздела Unix под Debian, которые я хотел бы объединить (проблемы с дисковым пространством: /). Какой самый простой способ сделать это? Я думаю, что было бы лучше скопировать или скопировать файлы из одного раздела в другой, удалить один и изменить размер другого. Я буду использовать parted для изменения размера, но как мне скопировать файлы? Есть ссылки, разрешения и устройства, которые нужно перемещать без изменений.

10.12.2008 09:44:22
3 ОТВЕТА
РЕШЕНИЕ

Вы можете запустить следующее (как root), чтобы скопировать файлы. Он работает для символических ссылок, устройств и обычных файлов.

cd /partition2
tar cf - . | ( cd /partition1 && tar xf - )

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

2
10.12.2008 10:11:07
Андерс, спасибо, этот метод tar был фантастическим для повторного объединения плохо дублированных треков iTunes: x: ~ usr $ cd '/ Users / usr / phelix / Удален / Тома / Расширенные / Медиа / iTunes /' x: iTunes usr $ tar ср. | (cd / тома / расширенный / мультимедиа / iTunes / && tar xf -)
Matt Gardner 22.04.2009 15:52:15

Вы также можете использовать SquashFS, чтобы создать зеркало раздела и скопировать его. Изменив размер второго раздела, смонтируйте образ SquashFS и скопируйте необходимые файлы. Имейте в виду, что вашему ядру понадобится поддержка SquashFS для монтирования образа.

0
10.12.2008 10:17:13

Поскольку это Debian с GNU fileutils, он cp --archiveдолжен работать нормально.

cp --archive --sparse=always --verbose --one-file-system --target-directory=/TARGET /ORIGIN

Если по какой-то причине вы хотите использовать GNU tar, вам нужно сделать что-то вроде этого:

cd /origin
find . -xdev -depth -not -path ./lost+found -print0 \
    | tar --create --atime-preserve=system --null --files-from=- \
          --format=posix --no-recursion --sparse \
    | { cd /target; tar --extract --overwrite --preserve-permissions --sparse; }

(Я делал это так много раз, что у меня есть файл со всеми этими командными строками для быстрого ознакомления.)

Предупреждение: использование GNU " tar" не будет копировать списки ACL POSIX; вам нужно использовать либо вышеуказанный cp --archiveметод " ", либо " bsdtar ":

mkdir /target
cd /origin
find . -xdev -depth -not -path ./lost+found -print0 \
    | bsdtar -c -n --null -T - --format pax \
    | { cd /target; bsdtar -x -pS -f -; }
2
20.10.2009 15:50:25