답변1
ad0을 부팅 가능하게 만들고 싶다면 필요하지 않습니다.콘텐츠 /dev 및 /proc 파일 시스템. 이러한 파일 시스템을 마운트하고 액세스하면 커널에 의해 동적으로 생성됩니다.
ad6(복제 소스 드라이브)에 사용된 디스크 공간이 복제 대상의 크기보다 작은 경우 다음 방법 중 하나를 사용하여 소스 파일을 복사할 수 있습니다.
* tar
* dump & restore
* cpio
언급한 /dev 및 /proc와 같은 특수 파일 시스템을 복사하지 않도록 주의해야 합니다. "소스" 디스크에서 부팅하는 대신 Live CD-ROM과 같은 것을 사용하여 부팅하는 경우 특수 /dev 및 /proc 파일 시스템이 단지시작하다장치(이 경우 CD-ROM)이므로 하드 디스크 파티션에는 /dev, /proc 및 기타 특수 위치에 대한 "잠재적 마운트 지점"으로 빈 디렉토리만 포함됩니다.
FWIW, 기존 노트북 설치를 새 하드 드라이브에 복제했을 때 수행한 단계는 다음과 같습니다. 보증을 위반하게 되므로 노트북을 열고 싶지 않습니다. 그래서 "대상" 디스크를 ad0으로 남겨두고 2.5" 하드 드라이브용 USB 연결 인클로저를 사용하여 원래 "소스" 디스크(이전 노트북의)를 연결했습니다.
[1] FreeSBIE 설치를 사용하여 CD-ROM(*)에서 부팅합니다.
(*) Many thanks to the FreeSBIE folks, for making such an easy to
use Live CD-ROM. I have found it very useful far too many times to
mention all of them in an email post!
[2] /mnt/source 및 /mnt/target 디렉터리를 만듭니다.
# mkdir -p /mnt/source
# mkdir -p /mnt/target
[3] 소스 루트 파티션을 마운트한 다음 소스 트리 아래의 기존 마운트 지점을 사용하여 대상 파티션을 마운트합니다.
# mount -o ro /dev/da0s1a /mnt/source
# mount -o ro /dev/da0s1e /mnt/source/home
Note that, for extra safety, I mounted the source partitions as
read-only. This way I would at least get a warning if I botched the
copying process, and avoid messing my original 'source' data.
[4] 대상 디스크(노트북 내부의 ad0 디스크)를 파티션하고 마운트합니다. 여기서는 Live CD-ROM에서 부팅하는 것이 많은 도움이 됩니다. 디스크의 분할되지 않은 부분을 "크기 조정"하거나 "유지"하기 위해 특별한 작업을 수행할 필요가 없기 때문입니다. 나는 사용할 수 있다가득한신규 설치용 디스크.
# fdisk -BI /dev/ad0
# bsdlabel -w -B /dev/ad0s1
# bsdlabel -e /dev/ad0s1
When I had configured the new ad0s1a and ad0s1e partitions, I saved
the label and exited bsdlabel's editor.
[5] 대상 파티션을 포맷합니다:
# newfs -L MYROOT /dev/ad0s1a
# newfs -L MYHOME -U /dev/ad0s1e
The -L labels are entirely optional, and, as you can see, I only
enabled softupdates on the new /home partition.
[6] `/mnt/target' 아래에 대상 파티션을 마운트합니다. 이번에는 마운트를 읽고 쓸 수 있습니다.
# mount /dev/ad0s1a /mnt/target
# mkdir /mnt/target/home
# mount /dev/ad0s1e /mnt/target/home
Note that the second command is not optional. The new root file
system was brand new, so it appears completely empty after being
mounted.
[7] 모든 것을 복사하려면 BSD tar(1)을 사용하십시오:
# tar -C /mnt/source -cf - . | tar -C /mnt/target xvf -
/etc/mtree'. This restores any special flags like
[8] 마지막 단계는 새로운 "대상" 시스템으로 chroot하고 noschg 또는 "/var/" 등의 mtree(8) 사양을 사용하여 올바른 데몬 작업에 필요한 특수 디렉토리 권한을 수정하는 것입니다.
To avoid side-effects from the runtime environment of the shell I
was using `outside' of the chroot, I cleared all environment
variables, and manually set only the bare minimum of stuff I needed
`inside' the chroot:
# env -i USER='root' SHELL='/bin/csh' HOME='/root' \
PATH='/bin:/sbin:/usr/bin:/usr/sbin' \
chroot /mnt/chroot /bin/csh
freesbie# set prompt = 'chroot# '
Then I run the `/etc/mtree/BSD.*.dist' files through mtree inside
the chroot:
chroot# cd / ; mtree -deU -f /etc/mtree/BSD.root.dist
chroot# cd /usr ; mtree -deU -f /etc/mtree/BSD.usr.dist
chroot# cd /usr/include ; mtree -deU -f /etc/mtree/BSD.include.dist
chroot# cd /var ; mtree -deU -f /etc/BSD.var.dist
[9] 마지막으로 새 "/etc/fstab" 파일을 검사하여 문제가 없는지 확인했습니다(제 경우에는 파티션 이름이나 순서가 바뀌지 않았기 때문에 이미 괜찮았습니다. 단지 조심했을 뿐입니다).
Then I exited from the chroot, unmounted all partitions, and
rebooted the laptop. The internal ad0 disk was a 'copy' of my old
disk, so I expected it to boot normally into FreeBSD... which, much
to my amusement (since this was one of the few times I had to move
_everything_ to a new disk), it promptly did :)
답변2
시도해 보셨나요 dd
?
그러면 다음이 제공됩니다.dd if=/dev/sdb1 of=/dev/sda2 bs=1M