고쳐 쓰다

고쳐 쓰다

/dev/vdb이전 1TB 디스크의 기존 데이터가 포함된 새 2TB 디스크( )를 추가했습니다 .

제가 이전에 1TB에서 전체 용량을 2TB로 확장한 fdisk /dev/vdb유일한 파티션입니다 . /dev/vdb1(즉, vdb1을 삭제한 후 다시 생성하여 디스크를 꽉 채운 것입니다.fdisk를 사용하여 파티션 크기를 조정하는 방법 - Red Hat Customer Portal).

그런 다음 나는 다음을 수행했습니다.

[root - /]$ fsck -n /dev/vdb1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/vdb1: clean, 46859496/65536000 files, 249032462/262143744 blocks

[root - /]$ e2fsck -f /dev/vdb1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vdb1: 46859496/65536000 files (0.4% non-contiguous), 249032462/262143744 blocks

[root - ~]$ resize2fs /dev/vdb1
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 262143744 blocks long.  Nothing to do!

다음과 같습니다 fdisk -l.

Disk /dev/vdb: 2147.5 GB, 2147483648000 bytes, 4194304000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4eb4fbf8

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048  4194303999  2097150976   83  Linux

하지만 설치하면:

mount /dev/vdb1 /mnt

이것이 내가 얻은 것입니다 df -h.

/dev/vdb1       985G  935G     0 100% /mnt

이는 여전히 이전 파티션의 크기입니다.

내가 여기서 뭘 잘못하고 있는 걸까?

고쳐 쓰다

나는 달렸고 partprobe다시 시작하라는 메시지를 받았습니다.

Error: Error informing the kernel about modifications to partition /dev/vdb1 -- Device or resource busy.  This means Linux won't know about any changes you made to /dev/vdb1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
Error: Failed to add partition 1 (Device or resource busy)

그래서 재부팅하고 다시 실행했습니다.

mount /dev/vdb1 /mnt

그러나 추가된 파일 시스템은 여전히 ​​다음과 같습니다.

/dev/vdb1       985G  935G     0 100% /mnt

어떤 아이디어가 있나요? fsck, e2fsck, 을 모두 다시 수행해야 하나요 ?resize2fs

정말 이상해요. 재부팅 후 partprobe다시 실행했는데 여전히 다음 오류가 발생했습니다.

Error: Error informing the kernel about modifications to partition /dev/vdb1 -- Device or resource busy.  This means Linux won't know about any changes you made to /dev/vdb1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
Error: Failed to add partition 1 (Device or resource busy)

장치나 리소스가 사용 중인 이유는 무엇입니까? 재부팅한 후에도?

답변1

  1. 한번은 fdisk /dev/vdb유일한 파티션 /dev/vdb1을 1TB에서 전체 용량 2TB로 확장한 적이 있습니다... 참조fdisk를 사용하여 파티션 크기를 조정하는 방법 - Red Hat Customer Portal.
  2. 그러다가 [ resize2fs /dev/vdb1]...

이것이 파일 시스템의 크기를 변경하지 않는다는 것을 알 수 있습니다. 이유는 다음과 같습니다.

resize2fs읽기와 유사하게 커널에서 파티션 크기를 읽습니다.다른 파일. fdisk 노력하다파티션 테이블에 쓴 후 커널을 업데이트합니다. 그러나 파티션 중 하나를 마운트하는 등 디스크가 사용 중인 경우에는 이 작업이 실패합니다.

그래서 resize2fs"할 일 없음" 메시지가 표시됩니다. 추가 파티션 공간은 표시되지 않습니다.

커널은 시작 시 파티션 테이블을 읽습니다. 따라서 컴퓨터를 다시 시작하기만 하면 됩니다. 그런 다음 실행하면 resize2fs추가 파티션 공간이 표시되고 이에 맞게 파일 시스템이 확장됩니다.


fdisk스크린샷에 표시된 것처럼 이런 일이 발생하면 중요한 경고가 기록된다고 생각합니다.이 (그렇지 않으면 오래된) 문서.

Red Hat 고객 포털에는 그다지 친숙하지는 않지만 실제로는 최신 문서가 있습니다.

다시 시작하지 않고 RHEL6에서 새 파티션을 사용하는 방법은 무엇입니까?

~에서

partprobe디스크의 파티션 테이블에 대한 변경 사항을 운영 체제에 알리기 위해 RHEL 5에서 일반적으로 사용됩니다. RHEL 6에서는 사용 중인 파티션이 없는(예: 마운트된) 디스크의 파티션을 업데이트하도록 OS만 트리거합니다. 디스크의 파티션이 사용 중인 경우 partprobe는 경우에 따라 안전하지 않은 것으로 간주되므로 시스템의 파티션을 업데이트하도록 운영 체제를 트리거하지 않습니다.

따라서 일반적으로 다음을 권장합니다.

  1. 디스크의 파티션 테이블을 수정하기 전에 디스크의 모든 파티션을 마운트 해제한 다음 partprobe시스템에서 업데이트 파티션을 실행하십시오.
  2. 이것이 가능하지 않은 경우(예: 마운트된 파티션이 시스템 파티션인 경우) 파티션 테이블을 수정한 후 시스템을 다시 시작하십시오. 다시 시작한 후 파티션 정보를 다시 읽습니다. 새 파티션이 추가되고 기존 파티션이 수정되지 않은 경우 partx 명령을 사용하여 시스템 파티션 테이블을 업데이트하는 것이 좋습니다. partx 명령은 시스템의 새 파티션 테이블과 기존 파티션 테이블 사이에 많은 검사를 수행하지 않으며 사용자가 자신이 수행하는 작업을 알고 있다고 가정합니다. 따라서 기존 파티션을 수정하거나 파티션 테이블을 잘못 설정할 경우 디스크의 데이터가 손상될 수 있습니다. 따라서 사용에 따른 책임은 사용자 본인에게 있습니다.

답변2

문제와 직접적인 관련은 없지만 resize2fs파티션이 확장 파티션 내부에 있는 경우 예상대로 작동하지 않을 수 있습니다.

자세한 내용은 여기를 참조하세요.Ubuntu ext4 파티션이 예상대로 Growthpart 또는 resize2fs를 사용하여 확장 또는 크기 조정되지 않음

관련 정보