Não que eu saiba, embora você possa excluir uma partição e redimensionar a outra: link
Obviamente, para que isso funcione, você precisa ter espaço suficiente para armazenar os dados em outra partição, no entanto.
Eu tenho uma partição /dev/sdb1
e uma partição /dev/sdb2
Eles são ambos em /etc/fstab
com UUIDs adequados e montados como /opt
e /home
Gostaria de mesclá-los sem perder nenhum arquivo
Isso pode ser feito a partir da linha de comando sem ter que mover todos os arquivos?
Não que eu saiba, embora você possa excluir uma partição e redimensionar a outra: link
Obviamente, para que isso funcione, você precisa ter espaço suficiente para armazenar os dados em outra partição, no entanto.
Não, você terá que mover os arquivos.
Mesmo assim, você ainda tem um problema: teria que montar a partição como "/ home" e o link simbólico "/ home / opt" para / opt.
Quando você diz "mesclar", eu entendo que você quer ter um sistema de arquivos que possa usar todo o espaço atualmente alocado para / opt e / home? A única maneira "certa" que eu sei como fazer isso é recriar as partições, torná-las parte de um volume físico LVM e criar um volume lógico sobre ele.
Você só precisa emprestar espaço alocado para um e usá-lo no outro? Você pode usar mount --bind
se não quiser usar links simbólicos.
Tem certeza de que é / dev / sdb e / dev / sdc? Por convenção / dev / sdb e / dev / sdc são discos individuais e não partições em um disco. As partições de disco normalmente têm um número associado a elas (por exemplo, / dev / sdb1, / dev / sdb2, / dev / sdc1, etc). Você não pode mesclar partições em discos rígidos físicos separados, você tem que mover os dados de um para o outro.
Como já foi dito por outros, não é realmente possível mesclá-los. Você teria que mover os dados e redimensionar as partições apropriadamente.
Você não pode mesclar /opt
e /home
sem ter um dentro do outro.
Por exemplo, /home
- > /opt/home
.
Então você pode fazer ln -s / home / opt / home.
ou melhor ainda: mount --bind /opt/home /home
ou fstab é: /opt/home /home none bind
Na verdade, adicionei o seguinte ao meu arquivo /etc/fstab
. (na verdade, meu verdadeiro usa o UUID da partion em vez de [ /dev/sdb1
])
/etc/fstab
/dev/sdb1 /share ext3 noatime,errors=remount-ro 0 1 /share/home /home none bind
Isso pode funcionar:
# 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
Você precisará anexar sudo
a cada linha ou executar como root
[ sudo bash
].
A fusão não é viável porque alguns números, como inodes, devem ser exclusivos dentro de um sistema de arquivos, mas alguns serão repetidos quando você tiver dois. As estruturas internas do sistema de arquivos entrariam em conflito da mesma maneira.
A absorção de um sistema de arquivos em outro é teoricamente viável, mas não acho que tenha sido tentado, porque as ferramentas que atendem a casos de uso raros têm um risco maior de erros, o que pode ter consequências fatais. Você precisaria fazer backups e, agora que tem backups, não precisa de conversão no local. Se você quisesse implementar isso, a ferramenta mais próxima é btrfs-convert, que phagocita um sistema de arquivos ext4 mantendo ambos os sistemas de arquivos na mesma partição, com as estruturas btrfs se referindo às estruturas ext4 e copy-on-write assegurando que novos arquivos sejam btrfs apenas.