Recuperar partição que começa no espaço não alocado e termina dentro de outra partição

0

A minha partição home no Arch Linux inicia atualmente cerca de 20GiB após o início do espaço não alocado e vai até o final da unidade.

Meu problema: Eu preciso de uma maneira de recuperar essa partição, que atualmente está dividida em unallocated space e dev/sdb3 . /dev/sdb3 obviamente não pode ser reconhecido como um sistema de arquivos desde o início da partição é de cerca de 215GiB antes do início de /dev/sdb3 (consulte a imagem abaixo).

Oqueaconteceu:

Euoriginalmentetinha3partiçõesnestaunidade-apartiçãoreservadadaMicrosoft,umapartiçãoparadadosdoWindowseminhapartição/homedoLinux.EutenhoumapartiçãodoWindowseraizdoLinux,bootepartiçãoswapemoutraunidade.

Aestruturaoriginaldaunidadetinha/dev/sdb3ocupaamesmaquantidadedeespaço(~390GiB),eoWindows/dev/sdb2ocupavacercade540GiB.ReduziapartiçãodoWindowsem215GiBnoWindowse,usandooGParted,moviapartição/homeparaaesquerdaparaocuparoespaçoliberadoeestendi-loatéofinaldaunidade.QuandoeureinicieinoArchLinux,tudofuncionoubemeeunãotivequeatualizar/etc/fstab.

EuentãotenteiencolherapartiçãodoWindowsporoutro20GiBnoWindows.NoteiqueaindaestavaexibindooespaçoliberadopeloWindowsanteriormentecomoespaçonãoalocado,emvezdeserassumidopelapartiçãoLinux.Eunãopenseinissoecomeceiadiminuirpara20GiB.OgerenciadordepartiçãodoWindowsmostrouqueoespaçonãoalocadocresceuemmais20GiB,paraocuparcercade235GiBdeespaço.

EucomeceiainicializaroArchLinuxnovamente,masamontagem/homefilesystemfalhou.EutenteisalvarasituaçãoemumUbuntu16.04liveUSBecomGPartedefdiskviaestruturadepartiçãoatual(consulteamesmaimagemacima).

Nomomento,estoutentandoencontraropontoinicialdapartição/home,tentandotentarmontaremcadasetorapóscercade20GiBapósotérminodapartiçãodoWindows.Noentanto,nãoestouotimistaquandotenteiexecutaroscriptparatentarencontrarminhapartição/(oqueébom)definindoodeslocamentodelosetupcomosetorialstart*tamanhodosetor,masdasaídaelenãoconseguiuencontrarapartição./p>

Portanto,minhapartição/estáem/dev/sda5,comsetorinicialde285696000e,portanto,285696000*512=146276352000bytes.

ubuntu-gnome@ubuntu-gnome:/$sudofdisk-l/dev/sdaDisk/dev/sda:232.9GiB,250059350016bytes,488397168sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:gptDiskidentifier:88407810-7885-4F92-A726-53E86D2E8A71DeviceStartEndSectorsSizeType/dev/sda12048534527532480260MEFISystem/dev/sda25345285672953276816MMicrosoftreserved/dev/sda356729615892471021952499MWindowsrecoveryenvironment/dev/sda41589248285692238284102991135.5GMicrosoftbasicdata/dev/sda528569600045490175916920576080.7GLinuxfilesystem/dev/sda64549017604883971343349537516GLinuxfilesystem

Euentãotenteimontá-lo:

ubuntu-gnome@ubuntu-gnome:/$sudolosetup-o146276352000/dev/loop2/dev/sda

Noentanto,ofdisknãomostranenhumdispositivo

ubuntu-gnome@ubuntu-gnome:/$sudofdisk-l/dev/loop2Disk/dev/loop2:96.7GiB,103782998016bytes,202701168sectorsUnits:sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytes

Oscriptqueescreviparatentarmontaraunidadeemtodosossetoresémostradoabaixo.

#!/bin/bashRECOVER_START=350039834624i="0"
while [ $i -ne -1 ] # for offset in {-10..50}
do
  sudo losetup -d /dev/loop2
  let "START_OFFSET=$RECOVER_START + $i * 512"
  sudo losetup -o $START_OFFSET /dev/loop2 /dev/sdb
  lines=$(sudo fdisk -l /dev/loop2 | wc -l)
  if [ "$lines" -ne 4 ]
  then
    sudo fdisk -l /dev/loop2
  fi
  i=$[$i+1]
done

Não sei o que fazer e aprecio qualquer ajuda e orientação sobre como minha partição /home pode ser recuperada. Obrigado.

    
por Fan Pu 13.02.2018 / 05:26

0 respostas