부팅 가능한 USB 스틱을 다른 크기의 스틱에 복제

부팅 가능한 USB 스틱을 다른 크기의 스틱에 복제

하드웨어: 2 x 8GB USB 플래시 드라이브
배포판: Mint 9 Xfce 영구 라이브 CD

USB 플래시 드라이브에는 두 개의 파티션이 있습니다:
1) FAT32 700MB Mint 9 파티션
2) ext3 7.3GB casper-rw파티션

목표:
설치 및 구성을 처음부터 다시 시작하고 싶지 않기 때문에 이 USB 플래시 드라이브를 복사하고 싶습니다.

경험: 1) 내 플래시 드라이브 중 하나의 크기가 1MB라도 다른 경우(때때로 그랬음) 복사본이 손상될 수 있기 때문에 이 작업에는
이것이 효과가 없다는 것을 알았습니다 .dd

gparted2) 첫 번째 드라이브처럼 두 번째 드라이브를 사용하고 사전 포맷한 다음 rsync각 파티션을 개별적으로 수행하는 것이 어떤 이유로 일부 파일이 복사되지 않고 드라이브가 여전히 부팅되지 않기 때문에 작동하지 않는다는 것을 발견했습니다 .

나는 작업용 스틱을 유지하고 이를 복사하여 친구들을 위해 스틱을 구성하고 싶습니다. 이렇게 하면 다른 스틱을 망쳐도 베이스 스틱이 항상 거기에 앉아 기다리고 있을 것입니다.

답변1

소개하다

PC 파티션(대부분의 USB 스틱에 있음)이 있는 드라이브의 경우 부트로더는 드라이브 시작 부분의 작은 섹션(드라이브의 부트 섹터에 위치한 1단계 부트로더)과 다른 섹션의 더 큰 섹션으로 구성됩니다. (두 번째 단계 부트로더, 파일 내). 1단계 데이터에는 2단계의 물리적 위치가 포함됩니다. 전체 장치(사용하려는 dd)를 복사하는 경우 1단계 부품은 동일한 물리적 위치에 있고 스틱은 작동하지만 새 스틱은 최소한 원본보다 커야 합니다. 파티션을 다시 생성하고 파일을 복사하면 파일이 아니기 때문에 첫 번째 단계가 손실됩니다.

두 번째 단계는 첫 번째(FAT32) 파티션에 있는 것으로 생각됩니다(그러나 확인하지는 않았습니다). 그렇다면 파티션을 일괄 복사하고 부트 섹터를 복사한 다음 두 번째 파티션이 남은 공간을 정확히 차지하도록 파티션 테이블을 편집한 다음 두 번째 파티션에 파일을 복사할 수 있습니다. 부트 섹터와 첫 번째 파티션의 원본 이미지를 하드 드라이브 파일에 보관할 수도 있습니다(그러나 USB 스틱에서 복제할 수도 있음).

다양한 크기의 클론 만들기

/dev/sdb아래에서는 원본 스틱이 포함된 장치 와 복제된 스틱이 포함된 장치를 참조하고 /dev/sdc필요에 따라 이름을 바꿉니다. 필요한 경우 마운트 지점을 생성합니다. FAT32 파티션(디스크 시작 부분)의 번호는 1이고 ext3 파티션의 번호는 2라고 가정합니다. 필요한 경우 다른 번호로 대체합니다.

첫 번째 부분(스틱에서 복제하는 경우):

head -c 512 </dev/sdb >/dev/sdc
partprobe /dev/sdc
cat </dev/sdb1 >/dev/sdc1

첫 번째 부분(이미지 파일에서 복제하는 경우):

cat boot_sector.img >/dev/sdc
partprobe /dev/sdc
cat first_partition.img >/dev/sdc1

커널이 디스크에서 파티션 테이블을 다시 로드하도록 호출해야 합니다 partprobe(부트 섹터에 있으며 위의 두 경우 모두 첫 번째 명령은 부트 섹터를 수정합니다). 생략하면 오류가 발생하거나 커널이 자동으로 스틱에 가비지를 씁니다.

이미지 파일을 만드세요:

head -c 512 </dev/sdb >boot_sector.img 
cat /dev/sdb1 >first_partition.img

이제 부팅 섹터와 첫 번째 파티션이 있으면 파티션 테이블을 다시 편집하여 두 번째 파티션의 크기를 조정해야 합니다. 에 올바른 입력을 제공하여 이를 자동화할 수 있습니다 fdisk. 경고: 이는 오류가 발생하기 쉬우므로 테스트해 본 적이 없습니다. 이 부분이 마음에 들지 않으면 수동으로 수행하십시오.

sed -e 's/ *#.*//' <<EOF | tr -s ' ' '\n' | tr -d _ | fdisk /dev/sdc
d 2         # delete partition 2
n p 2       # new primary partition 2...
_ _         # ... using all available space
w q         # write and quit
EOF

마지막으로 파티션 테이블을 다시 로드하고 ext3 파일 시스템을 생성한 후 거기에 파일을 복사합니다.

partprobe /dev/sdc
mke2fs -j /dev/sdc2
mount /dev/sdc2 /media/sdc2
cp -a /media/sdb2/ /media/sdc2/
umount /media/sdc2

더 큰 클론을 만드는 간단한 방법

원하는 경우 전체 스틱의 이미지를 저장할 수 있습니다. 적어도 그 크기만큼 큰 모든 스틱에서 이미지를 직접 사용할 수 있습니다. 를 사용하여 이미지를 새 스틱에 복사한 다음 cat <whole.img >/dev/sdc실행 partprobe /dev/sdc(또는 스틱을 뽑았다가 다시 연결)하여 파티션 테이블을 다시 읽으세요.

그런 다음 원하는 경우 복제본을 확대할 수 있습니다. 이 순서대로:

  1. 구역화를 확장합니다. 불행하게도 저는 이 간단한 방법을 모릅니다. 이는 명령을 사용하여 수행할 수 있지만(아니요, 파일 시스템의 크기를 조정합니다) parted올바른 매개변수를 찾아야 합니다. 반올림 오류를 방지하려면 섹터()로 전환하십시오.moveresizeunit s
  2. 파일 시스템을 확장합니다. 이 부분은 쉽습니다. resize2fs /dev/sdc2파일 시스템이 전체 파티션 크기를 사용하도록 실행하기만 하면 됩니다.

필요한 것보다 더 큰 스틱으로 시작하는 경우 위의 단계를 역순으로 수행하여 크기를 줄일 수 있습니다(먼저 파일 시스템 축소 사용 resize2fs, 그런 다음 파티션 축소 사용 parted).

또는 먼저 스틱을 이미지 파일에 복사한 다음 해당 이미지 파일을 처리할 수 있습니다. 파티션에 액세스하려면 다음을 사용하십시오.순환 장치, 구체적으로파일의 일부를 디스크에 연결. 이미지를 축소하려는 경우 다음 단계의 스케치를 참조하세요. (경고, 테스트되지 않았으므로 신중하게 진행하고 수학을 다시 확인하세요.)

fdisk -lu whole.img  # note starting sector of partition 2: $S
losetup -fs -o $(($S * 512)) whole.img
# Let $D be the desired size of partition 2, in kB
resize2fs /dev/loop0 $  # replace /dev/loop0 by whatever losetup prints
losetup -d /dev/loop0
parted whole.img
# Use parted to resize the second partition
dd if=/dev/null of=/file/to/truncate seek=1 bs=$(($S/2+$D+1))k

답변2

~$: sudo apt-get install gddrescue ddrescue

~$: ddrescue /dev/sda /dev/sdb -v

;

구문: 유틸리티 /source/drive /destination/drive --verbose

설명: 진행 상황과 오류 검사를 표시하므로 허용 가능한지 또는 어딘가에 걸려 있는지 알 수 있습니다. 추가할 수도 있습니다.비=원하는 크기의 덩어리. "gddrescue"는 "ddrescue"의 GUI 기반 버전이지만 문제 없이 작동하기 때문에 위에 적힌 대로 ddrescue만 사용합니다.

답변3

최근에 Kali 라이브 암호화 지속성을 16GB에서 64GB 3.0 USB로 복제했으며 호스트 OS는 Windows 10 pro입니다. 저는 어떤 Linux 배포판에서도 복제를 시도하지 않았습니다. 위의 답변이 귀하에게 필요한 것이라고 확신합니다. 그러나 모든 Windows 사용자의 경우 AOMEI 디스크 파티션 도우미를 사용했습니다. 사용하기 매우 쉽고 SSD를 Ubuntu에 맞게 분할하는 데 사용했지만 다른 방식으로 벗어났습니다.

복제한 USB가 라이브 부팅용으로 포맷되었는지 확인해야 했습니다. 두 개의 USB를 모두 연결하고 8GB 드라이브를 마우스 오른쪽 버튼으로 클릭한 copy다음 64GB 드라이브를 선택하면 "이 드라이브가 맞습니까? 모든 콘텐츠가 삭제됩니다"와 같은 질문이 표시됩니다. 그냥 읽어보고 모든 것이 올바른지 확인하세요. 실제로 많은 작업을 수행할 필요는 없습니다.

프로세스가 완료될 때까지 기다리십시오. 테스트 후 USB는 잘 작동합니다!

나는 이것이 적어도 나에게는 USB에서 USB로 라이브 배포판을 복제하는 가장 쉬운 방법이라는 것을 알았습니다.

관련 정보