AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 414192
Accepted
einpoklum
einpoklum
Asked: 2018-01-02 12:40:48 +0800 CST2018-01-02 12:40:48 +0800 CST 2018-01-02 12:40:48 +0800 CST

Troque a unidade de disco do laptop sem reinstalar o Linux?

  • 772

Eu tenho o Lubuntu 17.04 instalado no HDD do meu laptop. Agora comprei um SSD, quase do mesmo tamanho, como substituto; está vazio, intocado.

Agora, quero trocar os discos e ter basicamente exatamente o mesmo conteúdo que já tenho no HDD movido para o SSD - e ter meu Linux inicializado e executado sem a necessidade de nenhum ajuste adicional (exceto talvez /etc/fstabproblemas de UUID).

Como posso fazer isso...

  1. Sem a ajuda de um PC extra?
  2. Com a ajuda de um PC extra?

Notas:

  • Posso gerar pendrives inicializáveis, se necessário.
  • Tenho acesso a um leitor de CD/DVD, se necessário.
  • O HDD está com 33% de uso, então os dados caberão - mas a capacidade do HDD é um pouco maior.
  • O HDD pode ter alguns setores que são quase ruins (mas por enquanto - o Linux inicializa e funciona).
  • Há apenas uma partição no HDD e, pelo que ouvi, posso mantê-la assim no SSD também, considerando que sou o único usuário e não é usado como um servidor público, etc.
hard-disk system-installation
  • 2 2 respostas
  • 1234 Views

2 respostas

  • Voted
  1. Best Answer
    Michael Daffin
    2018-01-02T14:32:30+08:002018-01-02T14:32:30+08:00

    Você tem duas maneiras básicas de alternar sua instalação para um novo disco, clonar o disco ou copiar o conteúdo e corrigir o sistema (ou seja, bootloader, entradas fstab). Ambos os métodos têm suas vantagens e desvantagens.

    Ambos os métodos requerem outro sistema com este disco conectado e algum armazenamento extra ou o segundo disco. Pode ser outro laptop ou desktop - ou usb/cd ao vivo no laptop real.

    É mais fácil se você puder conectar os dois discos ao sistema - mas se não puder fazer isso, poderá usar o armazenamento extra como uma área temporária de preparação enquanto troca as unidades. Uma grande unidade de disco rígido USB pode ser usada se você tiver uma. Uma opção mais fácil pode ser obter um gabinete USB , o que permitirá que você conecte os dois discos ao mesmo computador.

    Portanto, usando um usb ativo e um gabinete usb, você pode fazer tudo no laptop em que deseja substituir a unidade. Para ambos os métodos, discutirei a transferência direta de disco com os dois discos conectados e nenhum deles montado ( ou seja, você estacionou em outro computador ou está trabalhando em um usb/cd ao vivo). Vou usar /dev/sdSpara indicar o disco de origem (o hdd no seu caso) e /dev/sdDpara indicar o disco de destino. Substitua-os pelos discos reais em seu sistema - certifique-se de verificar esses discos, pois errar destruirá todos os dados que você tiver como destino.

    Método 1: clonar o disco

    Este é o método mais simples ao passar de um disco para outro do mesmo tamanho ou maior, mas com uma etapa extra pode-se passar de um disco maior para um menor. A principal desvantagem disso é que ele copia o disco bloco por bloco e, portanto, requer a leitura e gravação de todo o disco. Isso levará mais tempo do que copiar o sistema quando o disco estiver quase vazio.

    Você mencionou ir de um disco um pouco maior para um menor, portanto, a primeira etapa é redimensionar a partição no disco de origem para um tamanho menor que o disco de destino. Isso é mais fácil de fazer com gparted , apenas certifique-se de reduzir a unidade para que o espaço livre fique no final do disco. Isso pode demorar um pouco, pois terá que mover todos os dados no final do disco para um novo local.

    Agora você simplesmente clona o disco de origem para o destino com ddou ddrescue. ddrescuepode ser aconselhável, pois se esforça mais para reler os setores defeituosos que você mencionou que pode ter.

    sudo ddrescue /dev/sdS --force /dev/sdD
    

    ou alternativamente com dd:

    sudo dd if=/dev/sdS of=/dev/sdD
    

    Observe que você receberá um erro informando que o disco de destino estava cheio durante a gravação - isso é bom, pois o final do disco não deve conter nada útil, pois redimensionamos o disco. É por isso que você deve redimensioná-lo para um tamanho um pouco menor que o destino.

    Agora você pode usar o gparted novamente para redimensionar o destino para preencher a unidade.

    Agora você deve ser capaz de trocar os discos e inicializar o novo sistema.

    Método 2: Copiar o sistema de arquivos raiz

    Este método pode ser mais rápido se você estiver usando apenas uma pequena quantidade de espaço em um disco grande, mas requer mais etapas para reconfigurar o bootloader e o fstab para inicializar o sistema. Ele também tem a vantagem de ser somente lido no disco de origem, então é menos provável que quebre seu disco original (embora isso não seja verdade para o método acima, pois vocêtem que redimensionar o disco devido ao destino ser menor que o de origem ). Também é mais flexível, pois você pode alterar facilmente as partições da maneira que desejar.

    A primeira etapa é configurar a tabela de partições na nova unidade e formatar as partições. Você mencionou que tem apenas uma partição na unidade - a partir disso, presumo que você esteja usando a inicialização do BIOS herdado (já que o uefi requer uma partição vfat além do sistema de arquivos raiz). Isso é mais fácil de fazer com parted:

    sudo parted /dev/sdD mklabel msdos
    sudo parted /dev/sdD mkpart primary ext4 0% 100%
    sudo mkfs.ext4 -F /dev/sdD1
    

    mas você também pode usar fdiskou gdiskou mesmo gpartedse preferir. Se o seu disco de origem tiver mais partições ou se você quiser alterar o layout da partição, pode fazê-lo agora - basta configurar o disco de destino da maneira que desejar ou precisar.

    Agora monte os discos de origem e destino.

    sudo mkdir -p /mnt/src /mnt/dest
    sudo mount /dev/sdS1 /mnt/src
    sudo mount /dev/sdD1 /mnt/dest
    

    Se você tem/quer mais partição do que esta, monte a raiz no local acima e as outras partições relativas a isso. (por exemplo, se sua origem tiver uma partição de inicialização extra, monte-a em /mnt/src/boot).

    Agora copie o conteúdo da fonte para o destino.

    sudo rsync -avh /mnt/src/ /mnt/dest/
    

    Isso vai demorar um pouco. Se for interrompido, você pode retomá-lo executando novamente o comando.

    Agora você pode desmontar a unidade de origem, pois não precisamos mais dela.

    sudo umount /mnt/source
    

    As etapas finais são consertar o sistema para que ele possa inicializar. Primeiro, abra /mnt/dest/fstabe corrija-o para o novo sistema - se o layout da partição for o mesmo, isso deve ser uma questão de atualizar o UUID/número da unidade para refletir a nova partição. Use blkidpara obter as informações necessárias, é recomendável usar UUID=ou PARTUUID=se disponível.

    Por fim, precisamos consertar o bootloader - aqui presumo que você estava usando o grub2 com um BIOS herdado, se isso não for verdade, desconsidere isso e siga as instruções de como restaurar seu bootloader.

    sudo grub-install --boot-directory=/mnt/dest/boot /dev/sdD
    

    Mais informações sobre como restaurar o bootloader do ubuntu podem ser encontradas aqui .

    Se tudo correr bem, você poderá desligar, trocar as unidades e inicializar o novo disco.

    Extras

    Trabalhando através de um terceiro disco

    Se você não puder conectar os dois discos a um computador, precisará de algum armazenamento extra - pode ser um disco USB, armazenamento conectado à rede ou qualquer outra coisa que você possa acessar localmente e seja grande o suficiente para armazenar o disco ou o sistema de arquivos raiz.

    O processo geral é o mesmo em ambos os métodos acima, mas em vez de copiar de um disco para outro, copie primeiro para a área temporária de preparação;

    Com o Método 1:

    Observe que isso requer que a área de preparação seja tão grande quanto o disco que você está copiando.

    Com o armazenamento montado para /mnt/staging:

    sudo ddrescue /dev/sdS /mnt/staging/rootfs.img
    

    Você pode todo o arquivo que quiser. A partir daqui, você pode comprimi-lo e mantê-lo como um backup do seu sistema, se desejar.

    Em seguida, você pode desligar, trocar as unidades e inicializar o usb ao vivo novamente para restaurar a imagem

    sudo ddrescue /mnt/staging/rootfs.img --force /dev/sdD
    

    Observe que os números de unidade para a origem e o destino podem ser os mesmos com este método.

    Com o Método 2:

    Observe que isso requer apenas que a área de preparação seja tão grande quanto o sistema de arquivos quando compactado, em vez de todo o disco.

    Com o armazenamento montado /mnt/staginge a fonte montada em /mnt/src:

    sudo tar -C /mnt/src -caf /mnt/staging/roofs.tar.gz /
    

    Em seguida, você pode desligar, trocar as unidades e inicializar o live usb novamente para restaurar o sistema de arquivos após configurar o sistema de arquivos dos discos de destino.

    sudo tar -C /mnt/dest -xf /mnt/staging/roofs.tar.gz /
    

    Em seguida, continue a restaurar o fstab e o bootloader.

    • 4
  2. user232326
    2018-01-02T14:20:13+08:002018-01-02T14:20:13+08:00

    A solução mais simples (se o HDD for menor que o SDD e o SDD puder ser conectado ao computador) é:

    1. inicialize em uma distro de pen drive. Isso evita que arquivos temporais sejam abertos em seu HDD.
    2. Copie com dd todo o disco HDD para o SDD:

      dd if=/dev/HDD of=/dev/SDD bs=4k
      

      É claro que HDD e SDD devem ser substituídos pelos nomes corretos para todos os discos como /dev/sdaou /dev/sdd(não partições /dev/sda1).

    3. Substitua o HDD pelo SDD no computador.

    4. Bota como sempre.

    O único problema é que o UUID de ambos os hardwares será idêntico e pode impedir que você monte as partições do HDD como uma unidade adicional. Isso poderia ser corrigido mais tarde, se necessário.

    • 0

relate perguntas

  • Configurações inativas do HDD usando hdparm (APM, Suspend)

  • qual é a versão do ntfs quando um disco externo é particionado no MS-Windows 7

  • Posso saber remotamente se tenho uma porta SATA livre

  • montar lan hdd no linux fedora

  • snap /dev/loop em 100% de utilização -- sem espaço livre

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve