Вопрос: как объединить два раздела ext3 на ubuntu из командной строки?


У меня есть раздел /dev/sdb1 и раздел /dev/sdb2

Они оба находятся в /etc/fstab с соответствующими UUID и монтируется как /opt а также /home

Я хотел бы объединить их без потери файлов

Можно ли это сделать из командной строки без перемещения всех файлов?


6
2018-04-30 17:21


Источник




Ответы:


Не то чтобы я знаю, хотя вы можете удалить один раздел и изменить размер другого: http://www.howtoforge.com/linux_resizing_ext3_partitions

Очевидно, что для этого вам придется иметь достаточно места для хранения данных в одном разделе в другом месте.


1
2018-04-30 17:27





Нет, вам придется переместить файлы.

Даже тогда у вас все еще есть проблема: вам нужно будет установить раздел как «/ home» и symlink «/ home / opt» в / opt.


4
2018-04-30 18:14





Когда вы говорите о слиянии, я полагаю, вы хотите иметь одну файловую систему, которая может использовать все пространство, выделенное в настоящее время для / opt и / home? Единственный «правильный» способ, которым я знаю, как это сделать, - воссоздать разделы, сделать их частью физического тома LVM и создать над ним логический том.

Вам просто нужно заняться пространством, которое выделяется одному, и использовать его в другом? Вы можете использовать mount --bind если вы не хотите использовать символические ссылки.


3
2018-04-30 18:04





Вы уверены, что это / dev / sdb и / dev / sdc? По соглашению / dev / sdb и / dev / sdc - это отдельные диски, а не разделы на диске. Дисковые разделы обычно имеют связанный с ними номер (то есть / dev / sdb1, / dev / sdb2, / dev / sdc1 и т. Д.). Вы не можете объединять разделы на отдельных физических жестких дисках, вам нужно переместить данные от одного к другому.

Как уже говорили другие, их невозможно объединить. Вам нужно будет переместить данные и соответствующим образом изменить размер разделов.


2
2018-04-30 18:25



На самом деле, вы правы / dev / sdc - это устройство USB. - sal


Вы не можете слиться /opt а также /home без наличия одного внутри другого.

Например /home -> /opt/home,

Затем вы можете сделать ln -s / home / opt / home.

или еще лучше: mount --bind /opt/home /home

или fstab: /opt/home /home none bind

Я действительно добавил следующее к моему /etc/fstab файл. (на самом деле мой реальный использует UUID участника, а не [/dev/sdb1])

/etc/fstab

/ dev / sdb1 / share ext3 noatime, errors = remount-ro 0 1
/ share / home / home none bind

1
2018-04-30 17:52



Вы можете объединить их, скажем, перемещение / home / opt / home, а затем ln -s / opt / home / home - Hamish Downer


Это может сработать:

# copy files preserving attributes
cp -Rp /home /opt # --recursive --preserve

# comment out old /home entry
perl -pie'$_ = "#$_" if m[/home]' /etc/fstab 

# add a bind entry to the end of fstab
echo /opt/home  /home  none  bind >> /etc/fstab


# unmount both partitions
umount /home
umount /opt

# remove original /home partition
# resize /opt partition to use the freed space


# could also just restart here
mount /opt
mount /home

Вам нужно будет добавить sudo для каждой строки или root [sudo bash].


0
2018-05-04 15:26





Слияние не представляется возможным, поскольку ожидается, что некоторые числа, такие как inodes, будут уникальными в файловой системе, но некоторые будут повторяться, если у вас есть два. Аналогичным образом конфликтуют внутренние структуры файловой системы.

Поглощение файловой системы в другую теоретически возможно, но я не думаю, что это было сделано, потому что инструменты, которые обслуживают редкие случаи использования, имеют более высокий риск ошибок, которые могут иметь фатальные последствия. Вам потребуется сделать резервные копии, и теперь, когда у вас есть резервные копии, вам не нужно преобразовывать место. Если вы хотите реализовать это, ближайший инструмент - это btrfs-convert, который фагоцитирует файловую систему ext4, сохраняя обе файловые системы в одном разделе, с структурами btrfs, ссылающимися на структуры ext4 и copy-on-write, гарантируя, что новые файлы являются btrfs -только.


0
2017-12-01 20:58