파티션 번호를 sda1에서 sda2로 변경

파티션 번호를 sda1에서 sda2로 변경

내 디스크에는 sda1과 sda2라는 두 개의 파티션이 있습니다. sda1의 개수를 sda2로, sda2의 개수를 sda1로 변경하고 싶습니다.

가능은 한데 과정이 기억이 안나네요. 즉, 첫 번째 파티션은 sda2이고 두 번째 파티션은 sda1이므로 fdisk -> x -> f와 같은 자동 순서가 아닌 수동 순서를 지정해야 합니다.

주문을 어떻게 변경할 수 있나요? 매뉴얼이나 튜토리얼에 대한 링크도 환영합니다.

감사해요.

이유: sda1에서 데이터를 읽어야 하는 애플리케이션이 있는데 데이터가 sda2에 있습니다. 이 문제를 해결하는 가장 빠른 방법은 파티션 테이블을 변경하는 것입니다. 시스템이 중요하지는 않지만 시스템이 너무 오랫동안 다운되는 것을 원하지 않습니다.

고쳐 쓰다: OpenBSD의 fdisk 버전에는 이 기능이 포함되어 있습니다.

답변1

저는 좀 더 간단한 방법으로 해봤습니다.

# sfdisk --dump /dev/sdb > sdb.bkp

안전을 위해 사본을 남겨주세요.

# cp sdb.bkp sdb.new 

이제 내 경우처럼 sdb.new를 편집하여 행 순서와 파티션 번호만 변경합니다.

~에서

# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=  1026048, size=975747120, Id=83
/dev/sdb2 : start=     2048, size=   204800, Id=83
/dev/sdb3 : start=   206848, size=   819200, Id= b
/dev/sdb4 : start=        0, size=        0, Id= 0

도착하다

# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=     2048, size=   204800, Id=83
/dev/sdb2 : start=   206848, size=   819200, Id= b
/dev/sdb3 : start=  1026048, size=975747120, Id=83
/dev/sdb4 : start=        0, size=        0, Id= 0

그런 다음 디스크 파티션 테이블로 다시 던지시겠습니까?

# sfdisk /dev/sdb < sdb.new

디스크 시작 부분에 두 개의 작은 파티션을 추가하기 위해 유일한 파티션(sdb1)을 축소하고 오른쪽으로 이동한 후 번호 지정 순서가 깨졌습니다 gparted.

마지막 명령이 작동하지 않으면(제 경우처럼) 다음과 같이 변경하세요.

# sfdisk --no-reread --force /dev/sdb < sdb.new

답변2

참고로,이건 나쁜 생각이야모든 것을 잃을 수도 있습니다. 그래도 이 작업을 수행하려면 다음 단계를 따르세요.

  1. 아니요해. 도움이 되지 않으면 다음을 수행하세요.
  2. 도구를 사용하려면 sfdisk먼저 다음 명령을 사용하여 파티션 테이블을 백업합니다.

    sfdisk -d /dev/sda > sda.out
    

    그럼 그냥 해보세요:

    sfdisk /dev/sda -O sda-partition-sectors.save
    

    다음과 같은 내용이 표시됩니다.

    Checking that no-one is using this disk right now ...
    OK
    
    Disk /dev/sda: 1018 cylinders, 124 heads, 62 sectors/track
    Old situation:
    Units = cylinders of 3936256 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sda1          0+      5       6-     23063+  83  Linux
    /dev/sda2          6    1017    1012    3890128   83  Linux
    /dev/sda3          0       -       0          0    0  Empty
    /dev/sda4          0       -       0          0    0  Empty
    Input in the following format; absent fields get a default value.
    <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
    Usually you only need to specify <start> and <size> (and perhaps <type>).
    
    /dev/sda1 :
    

이제 "sda1" 파티션의 새로운 세부 정보를 제공하라는 메시지가 표시됩니다. 따라서 여기에 sda2의 수를 제공해야 합니다. 따라서 여기에 "6 1012"를 입력하고 Enter 키를 누릅니다.

    /dev/sda1 :6 1012
    /dev/sda1          6    1017    1012    3890128   83  Linux
    /dev/sda2 :

지금확인하다Enter 키를 누른 후 인쇄된 숫자가 다음과 같은 경우정확히sda2에 대해 이전에 인쇄된 것과 동일합니다. 가능하다면 계속해서 sda2에 새 번호를 제공하세요.

    /dev/sda2 :0
    /dev/sda2          0+      5       6-     23063+  83  Linux
    /dev/sda3 :

이번에는 제 예에서 "0"을 입력하는 것으로 충분합니다. 하지만 숫자를 혼동하지 않도록 주의해야 합니다.

다음으로, 같은 방식으로 다른 파티션을 계속 진행합니다. 디스크 끝에 도달한 경우 Enter 키를 누르는 것만으로도 충분합니다. 마지막으로 모든 숫자가 올바른지 다시 확인하고 파티션 테이블을 저장합니다(또는 저장하지 않음). 문제가 있는 경우 man sfdisk"-d", "-O" 및 "-I" 옵션에 대한 설명을 확인하세요.

또한 엄청난 변경을 한 후에는 파티션을 마운트하기 전에 "동기화"를 실행하여 파티션을 다시 읽어야 할 수도 있습니다.

답변3

기존의 모든 솔루션은 매우 안전한 것처럼 보이지만 매우 복잡합니다.

재주문하고 싶어요모두내 파티션이 정리되어 있습니다.

경험이 많고 불필요한 데이터나 백업 데이터가 있고 문제를 해결하고 싶다면 Live CD에서 부팅하여이 방법:

sudo fdisk /dev/sdX

그 다음에:

  • x전문가 모드로 들어가세요
  • f드라이브 순서 수정( i필요한 경우 경고를 무시할 수 있음)
  • r일반 모드로 돌아가기
  • w변경 사항을 디스크에 쓰고 종료

추가의

한번만 하고 재테스트를 안해서 정확한 다음 단계는 기억나지 않지만, 설치물도 옮기는 중이었기 때문에 파티션도 마운트하고모든 파일 복사:

sudo mkdir /mnt/sda4
sudo mount /dev/sda4 /mnt/sda4
sudo mkdir /mnt/sda5
sudo mount /dev/sda5 /mnt/sda5
date;cp -a /mnt/sda4/* /mnt/sda5;date

그런 다음 파티션 ID를 가져옵니다.

sudo blkid

그리고 새 파티션 UUID 값을 반영하도록 다음을 업데이트했습니다.

  • /mnt/sda5/boot/grub/grub.cfg
  • /mnt/sda5/etc/fstab

나는 그때GRUB2 업데이트:

sudo grub-install --root-directory=/mnt/sda5 /dev/sda

답변4

순서를 바꾸려면 드라이브 파티션 테이블을 다시 작성해야 하는데 이는 약간 위험합니다. 내가 당신이라면 장치 이름의 순서를 바꾸고 파티션을 유지하고 싶게 만드는 문제를 해결할 것입니다.

예를 들어, 두 대의 컴퓨터에서 실행해야 하는 스크립트가 있고 동일한 장치에 액세스하려는 경우 두 서버 모두에서 동일한 이름을 가진 다른 디렉터리(/dev 아님)에 링크를 만듭니다. /하나는 dev/sda1이고 다른 하나는 /dev/sda2입니다.

파티션 편집기( fdisk또는 cfdisk)를 사용하여 파티션을 편집할 수 있지만 현재 설정을 기록하거나 화면 사진을 찍어야 합니다. 두 파티션을 모두 삭제하고 올바른 값을 모두 지정하여 수동으로 생성합니다. LiveCD를 사용하여 시스템을 부팅하면 됩니다.

관련 정보