Puncte:1

De ce Linux „dd” greșește cu „nu rămâne spațiu pe dispozitiv” în timp ce copiați o singură partiție pe un dispozitiv mai mic?

drapel cn

Încerc să copiez singura partiție /dev/sda1 în /dev/sdc1, dar primesc eroarea „nu rămâne spațiu pe dispozitiv” și sincer nu înțeleg de ce.

Lucrez la o VM Oracle Cloud Infrastructure (OCI) în care /dev/sda este un volum de 768 GB a cărui partiție sda1 a fost redusă sau doar 32 GB (procesul a fost ok, nicio pierdere de date! Pot garanta deoarece acel volum este un grup de discuri Oracle Database ASM și totul funcționează bine după micșorare).

Deoarece OCI permite doar creșterea volumului, am creat un nou volum /dev/sdc cu dimensiunea de 50 GB (aceasta este dimensiunea minimă permisă) și am creat o partiție /dev/sdc1 de doar 32 GB (aceeași dimensiune ca /dev/sda1).

NUME MAJ:MIN RM DIMENSIUNE RO TIP PUNCT DE MONTARE
sdc 8:32 0 50G 0 disc
ââsdc1 8:33 0 32G 0 parte
sda 8:0 0 768G 0 disc
ââsda1 8:1 0 32G 0 part

Primesc o eroare în timp ce rulez

# dd if=/dev/sda1 of=/dev/sdc1 bs=512b conv=noerror,sync
dd: eroare la scriere â/dev/sdc1â: nu a mai rămas spațiu pe dispozitiv
22567+0 înregistrări în
22566+0 înregistrări
5915787264 octeți (5,9 GB) copiați, 42,9384 s, 138 MB/s

Cele două partiții au exact aceeași dimensiune, așa cum arată fdisk

# fdisk /dev/sda

Disc /dev/sda: 824,6 GB, 824633720832 octeți, 1610612736 sectoare
Unități = sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 4096 octeți
Dimensiunea I/O (minimă/optimă): 4096 octeți / 1048576 octeți
Tip etichetă disc: dos
Identificatorul discului: 0x7c9bf84b

   Device Boot Start End Blocks Id System
/dev/sda1 2048 67108863 33553408 83 Linux


# fdisk /dev/sdc
Disc /dev/sdc: 53,7 GB, 53687091200 octeți, 104857600 sectoare
Unități = sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 4096 octeți
Dimensiunea I/O (minimă/optimă): 4096 octeți / 1048576 octeți
Tip etichetă disc: dos
Identificatorul discului: 0x9b11add5

   Device Boot Start End Blocks Id System
/dev/sdc1 2048 67108863 33553408 83 Linux

ce fac greșit?

drapel in
Eroare destul de devreme în comparație cu 32G, aș verifica nodurile `ls -l /dev/sd?1` verifica numerele nodurilor cu `lsblk -b`, aș verifica `dmesg` pentru orice mesaj, aș folosi `dd_rescue` sau `ddrescue` in schimb.
Puncte:0
drapel cn

Nu știu care a fost problema, dar am făcut-o să funcționeze doar clonând întregul volum

# dd if=/dev/sda of=/dev/sdc bs=512b conv=noerror,sync

Desigur, operațiunea se oprește la 50 GB, adică dimensiunea totală /dev/sdc, eroare același mesaj, dar rezultatul este OK.

A.B avatar
drapel cl
A.B
Care a fost probabil problema: sistemul dvs. nu și-a actualizat tabelele de partiții în memorie.Probabil ați creat /dev/dc1 la ~ 6G și l-ați mărit mai târziu. Cel mai simplu instrument de a forța o astfel de actualizare este `kpartx -u ...`. Totuși, acest lucru ar trebui să se întâmple numai dacă partiția este în uz.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.