새 디스크의 파티션 크기가 올바르지 않습니다.

새 디스크의 파티션 크기가 올바르지 않습니다.

이런 유형의 질문을 많이 받는다는 것을 알고 있지만 무슨 일이 일어나고 있는지 알 수 없는 것 같습니다. tl;dr: 기존 디스크를 더 큰 디스크에 복제했는데 df파티션 테이블이 괜찮아 보이는데도 원래 디스크 크기로만 표시됩니다.

내 데비안 시스템에는 10TB 백업 드라이브가 있고 그 /dev/sda위에 추가 백업으로 12TB 드라이브를 추가했습니다 /dev/sdc. 결국 오프사이트 저장소에 대한 첫 번째 백업을 삭제하겠습니다. 일단 parted새 파티션을 만들고 사용 가능한 전체 공간을 사용한 다음 mkfs.ext4그 위에 파일 시스템을 만들었습니다. 그런 다음 이 파일 시스템을 마운트했고 df -h예상한 결과가 나타났습니다. 원래 디스크는 9.1T이고 새 디스크는 11T였습니다.

원본을 새 드라이브에 복사했습니다 pv < /dev/sda1 > /dev/sdc1. 이것은 복제본이므로 파티션에 대한 새 UUID를 생성 uuidgen하고 이를 사용하여 /etc/fstab.

새 드라이브에는 내가 기대하는 파일이 있습니다. 그러나 df이제 두 드라이브가 모두 동일한 것으로 표시됩니다.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
[...]
/dev/sda1       9.1T  6.5T  2.6T  72% /mnt/Backup1
/dev/sdc1       9.1T  6.5T  2.6T  72% /mnt/Backup2

이는 디스크가 처음 마운트될 때 발생하는 현상입니다. 파일을 열어두는 기존 작업과는 다릅니다.

출력에는 fdisk예상되는 파티션 크기가 표시됩니다.

# fdisk -l /dev/sdc
Disk /dev/sdc: 10.9 TiB, 12000105070592 bytes, 23437705216 sectors
Disk model: Elements 25A3   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 96102C84-3B01-4361-A9C2-B44455AEC02E

Device     Start         End     Sectors  Size Type
/dev/sdc1   2048 23437703167 23437701120 10.9T Linux filesystem

에서와 같이 lsblk:

# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  9.1T  0 disk 
└─sda1        8:1    0  9.1T  0 part /mnt/Backup1
sdc           8:32   0 10.9T  0 disk 
└─sdc1        8:33   0 10.9T  0 part 

또한 실행을 통해 parted파티션의 크기가 올바른지 확인하는 것 같았습니다.

# parted /dev/sdc
GNU Parted 3.2
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: WD Elements 25A3 (scsi)
Disk /dev/sdc: 12.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  12.0TB  12.0TB  ext4         primary

그래서 한번 시도해 보았는데 fsck결과는 이렇습니다.

# fsck.ext4 /dev/sdc
e2fsck 1.44.5 (15-Dec-2018)
ext2fs_open2: Bad magic number in super-block
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/sdc

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

Found a gpt partition table in /dev/sdc

이 옵션을 시도했지만 e2fsck동일한 결과를 얻었습니다.

df이 fsck 문제에 대한 토론을 검색했지만 유용한 내용을 찾지 못했고 출력과 디스크 크기의 다른 표시 간의 차이에 대한 많은 토론 중 일부를 살펴보았지만 운도 별로 좋지 않았습니다. 일반적으로 이것이 그렇습니다. 이유는 다음과 같습니다. 새 디스크에 원래 파티션의 정확한 복사본이 있는지 확인합니다. 하지만 내 파티션 크기는 올바른 것 같습니다.

어떤 제안이라도 감사하겠습니다. 내 파일이 새 디스크에 있는 것 같아서 이를 지우고 다시 시작하려면 다시 복사하는 데 오랜 시간이 걸립니다.

편집: 요청에 따라 출력은 다음과 같습니다 gdisk.

# gdisk -l /dev/sdc
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdc: 23437705216 sectors, 10.9 TiB
Model: Elements 25A3   
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 96102C84-3B01-4361-A9C2-B44455AEC02E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 23437705182
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048     23437703167   10.9 TiB    8300  primary

답변1

파티션과 파일 시스템의 관계에 대해 오해가 있는 것 같습니다. 파티션의 크기는 실제로 정확하지만 파일 시스템은 그렇지 않습니다.

를 실행하면 pv < /dev/sda1 > /dev/sdc1파일 시스템이 바이트 단위로 복사 sda1됩니다 sdc1. 파일 시스템은 에 생성되므로 파일 시스템이 정확한 크기를 차지하게 sda1됩니다 . 그러나 .​ 따라서 결과는 12TB 파티션 내의 10TB 파일 시스템입니다.mkfs.ext4sda1sdc1sda1

해결책은 resize2fs전체 파티션을 차지하도록 파일 시스템의 크기를 조정하는 것입니다. 원하는 정확한 파일 시스템 크기를 전달할 수 있지만 resize2fs파티션 크기에 맞게 크기를 조정하려는 경우에는 필요하지 않습니다. 를 제거한 후 /dev/sdc1루트로 실행 resize2fs /dev/sdc1하면 파일 시스템 크기가 12TB로 조정됩니다.


참고:
이 유형의 파일 시스템 복사본은 원본 파일과 복사본 모두 동일한 UUID를 갖게 되므로 주의해서 사용해야 합니다. 두 파티션이 동시에 시스템에 있는 경우 식별자는 더 이상 고유하지 않습니다.

따라서 원본 드라이브를 지우려는 경우(즉, 파티션을 복사하지 않고 새 디스크로 이동하는 경우) 또는 복사된 파티션의 UUID를 수동으로 변경하려는 경우 이 방법을 사용하십시오.

관련 정보