Reparticionar dois discos sem perda de dados

4

Estou fazendo estágio em uma empresa de software e acertei um pouco de parede de tijolos. Aqui está o acordo:

O problema: Temos algumas caixas por aqui que foram particionadas incorretamente para unidades de 2 x 500 GB. As unidades reais são unidades de 2 x 1 TB. Essas são essencialmente máquinas com apenas metade do espaço disponível em disco sendo usado. Tenho a tarefa de escrever um script para reparticionar essas unidades.

Solução Assim Far: Eu tenho um script que desativa todos os processos e reinicializações e, em seguida, outro script que corrige as partições. O problema é que há uma perda de dados.

O que estou procurando: Preciso de uma solução que faça isso, mas salve todos os dados. Meu primeiro porém seria apenas aumentar as partições para o tamanho apropriado, mas não tenho certeza se isso é possível. A outra solução é copiar todos os dados para o Disk2, particionar o Disk1, mover os dados de volta para o Disk1 e, finalmente, particionar o Disk2. O problema é que sou muito novo no Linux e não sei como fazer isso. Eu tenho acesso ao utilitário fdisk e ao utilitário parted.

Eles são todos do tipo ext3.

EDIT: 11/3/11

Ok. Portanto, tenho aproximadamente 1 GB de espaço não utilizado e não alocado nos dois discos. Eu quero fazer o seguinte:

  • Crie uma nova partição estendida em SDB de tamanho 1 GB, chamada sdb99 para referência aqui
  • Copie sda5 sda6 sda7 para a nova partição SDB sdb99
    • Posso simplesmente copiar "/" de cada um deles para alguma pasta nesta nova partição?
    • Preciso colocar um sistema de arquivos nesta nova partição para copiar arquivos lá?
    • Se eu apenas copiar "/", isso preservará toda a estrutura de diretórios?
    • É uma tarefa simples mover arquivos entre discos como este?
  • Exclua sda5 sda6 sda7 e recrie-os com o dobro do tamanho
    • Eu realmente preciso excluir esses itens? Eu não acho que eu possa crescer 3 partições contíguas, e mesmo se eu pudesse, o sistema de arquivos não cresceria ... certo?
  • Copie os dados de sdb99 para as novas partições sda5 sda6 sda7
    • Isso deve ser tão simples quanto mover o conteúdo desses diretórios contendo todos os "/" de volta, certo?
  • Copie sdb5 sdb6 sdb7 para o novo sda5 sda6 sda7 em pastas separadas.
    • Deve haver espaço suficiente por causa do espaço agora duplicado disponível ... Espero
  • Excluir e reparticionar SDB
  • Mova os arquivos de sdb5 sdb6 sdb7 de volta para SDB

Alguém vê algum problema gritante, tem alguma indicação, aviso, sugestão, etc.?

Obrigado a todos. Novamente, isso precisa para ser roteirizado. Obrigado.

EDIT 2 Aqui está o script atual ...

#!/bin/bash

LOG=./repartition.log 

date > $LOG 2>&1

echo "Ok, let's get started." >> $LOG 2>&1

# Resize logical partitons
parted -s /dev/sda resize 4 45GB 2000GB >> $LOG 2>&1
parted -s /dev/sdb resize 4 90GB 2000GB >> $LOG 2>&1

# Create the temporary file systems on disk 2
mke2fs -j /dev/sdb8 >> $LOG 2>&1

# Copy sda6 sda7 sda8 to sdb8
cp -r -L -p /dev/sda6 /dev/sdb8/home/sda6 >> $LOG 2>&1
cp -r -L -p /dev/sda7 /dev/sdb8/home/sda7 >> $LOG 2>&1
cp -r -L -p /dev/sda8 /dev/sdb8/home/sda8 >> $LOG 2>&1

# Remove NBD partitions on disk 1
parted -s /dev/sda rm 8 >> $LOG 2>&1
parted -s /dev/sda rm 7 >> $LOG 2>&1
parted -s /dev/sda rm 6 >> $LOG 2>&1

# Create NBD partitons on disk 1
parted -s /dev/sda mkpart logical 70GB 713GB >> $LOG 2>&1
parted -s /dev/sda mkpart logical 713GB 1356GB >> $LOG 2>&1
parted -s /dev/sda mkpart logical 1356GB 2000GB >> $LOG 2>&1

# Create the file systems on disk 1
mke2fs -j /dev/sda6 >> $LOG 2>&1
mke2fs -j /dev/sda7 >> $LOG 2>&1
mke2fs -j /dev/sda8 >> $LOG 2>&1

# Copy sda6 sda7 sda8 back to sda
cp -r -L -p /dev/sdb8/home/sda6 /dev/sda6 >> $LOG 2>&1
cp -r -L -p /dev/sdb8/home/sda7 /dev/sda7 >> $LOG 2>&1
cp -r -L -p /dev/sdb8/home/sda8 /dev/sda8 >> $LOG 2>&1

# Copy sdb5 sdb6 sdb7 to sda6 sda7 sda8
cp -r -L -p /dev/sdb5 /dev/sda6/home/sdb5 >> $LOG 2>&1
cp -r -L -p /dev/sdb6 /dev/sda7/home/sdb6 >> $LOG 2>&1
cp -r -L -p /dev/sdb7 /dev/sda8/home/sdb7 >> $LOG 2>&1

# Remove NBD partitions on disk 2
parted -s /dev/sdb rm 8 >> $LOG 2>&1
parted -s /dev/sdb rm 7 >> $LOG 2>&1
parted -s /dev/sdb rm 6 >> $LOG 2>&1
parted -s /dev/sdb rm 5 >> $LOG 2>&1

# Create NBD partitons on disk 2
parted -s /dev/sdb mkpart logical 90GB 726GB >> $LOG 2>&1
parted -s /dev/sdb mkpart logical 726GB 1362GB >> $LOG 2>&1
parted -s /dev/sdb mkpart logical 1362GB 2000GB >> $LOG 2>&1

# Create the file systems on disk 2
mke2fs -j /dev/sdb5 >> $LOG 2>&1
mke2fs -j /dev/sdb6 >> $LOG 2>&1
mke2fs -j /dev/sdb7 >> $LOG 2>&1

# Copy sdb5 sdb6 sdb7 back to sdb
cp -r -L -p /dev/sda8/home/sdb7 /dev/sdb7 >> $LOG 2>&1
cp -r -L -p /dev/sda7/home/sdb6 /dev/sdb6 >> $LOG 2>&1
cp -r -L -p /dev/sda6/home/sdb5 /dev/sdb5 >> $LOG 2>&1


rm /etc/init.d/fix_partitions >> $LOG 2>&1
rm /etc/init.d/local/99fix_partitions >> $LOG 2>&1
mv /etc/init.d/local/gca_init.off /etc/init.d/local/99gca_init >> $LOG 2>&1

echo "All set.  Please reboot.  Have a nice day." >> $LOG 2>&1

date >> $LOG 2>&1
reboot >> $LOG 2>&1
    
por grav3mind 27.10.2011 / 21:21

2 respostas

6

Por que isso precisa ser roteirizado? Eu reiniciei com um disco de boot como o RIP (resgate é possível) Linux no X, execute o gparted (um utilitário gráfico) e redimensione as partições de lá. Gparted tem a capacidade de redimensionar partições sem danos (pelo menos eu não tive um problema com o NTFS; não tive que fazer muito com partições Linux)

MAS

VOCÊ DEVE TER UM BACKUP DOS DADOS

É simplesmente bobagem se esses dados são importantes para não ter backups e jogar com as partições. Ou francamente estúpido, dependendo da importância dos dados.

    
por 27.10.2011 / 21:30
0

O IIS usa uma conta diferente daquela usada para mapeamento. É uma conta IUSR ou IWAM no SERVIDOR A. O que provavelmente é visto como CONVIDADO pelo SERVIDOR B. A maneira mais fácil e mais precisa da perspectiva técnica e de segurança será a seguinte:

  1. Configure a Auditoria no compartilhamento provisionado no SERVER B para monitorar qual usuário está tentando acessar o compartilhamento e gravar arquivos nele.
  2. Crie / altere contas de usuário e / ou permissões no compartilhamento que está localizado no SERVIDOR B.
por 26.04.2011 / 18:31