두 개의 ZFS 풀이 있는 시스템에 FreeBSD 10.1을 설치했으며 부트 로더만 포함된 다른 하드 드라이브에서 부팅했습니다. 메인 풀 디스크가 PCI-E 카드의 SATA 포트에 연결되어 있고 부트로더가 잘못된 풀(마더보드의 SATA 포트에 직접 연결된 두 번째 풀)에서 부팅을 시도하고 있습니다.
오류는 다음과 같습니다.
Can't find /boot/zfsloader
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot:
/
Cant't find /boot/kernel/kernel
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot:
/mnt/boot/loader.conf에서 vfs.root.mountfrom="zfs:zpool" 또는 "zfs:zpool/ROOT" 설정을 시도했지만 작동하지 않습니다.
두 번째 풀의 디스크를 분리하면 시스템이 올바르게 부팅됩니다.
감사합니다.
답변1
글쎄, 나는 그것을 스스로 알아 냈습니다.
ZFS 로더에서는 부팅할 루트 풀을 설정할 수 없지만 풀링된 BIOS의 부팅 우선 순위를 통해 올바른 루트 풀을 추측하려고 시도합니다.
올바른 풀에서 부팅되도록 하기 위해 부트로더가 포함된 드라이브를 BIOS의 첫 번째 부팅 장치로 설정하고 루트 미러 풀에 속한 드라이브를 두 번째와 세 번째로 설정했습니다.
답변2
cp -r /boot
올바른 풀에서 잘못된 풀로 이동해 보세요 . bootfs
잘못된 풀의 속성이 비어 있거나 올바른 풀로 설정되어 있는지 확인하세요 .
답변3
적절한 배포 CD에서 "라이브 CD" 모드로 부팅합니다. 루트로 로그인하십시오.
이제 부팅 가능한 풀을 "탱크"라고 가정해 보겠습니다.
풀을 설치하지 않고 가져오기 -
zpool import -N -f tank
그런 다음 bootfs 속성을 적절하게 설정하십시오. 일반적인 부팅 파일 시스템 이름은 "tank/ROOT/default"입니다.
zpool set bootfs=tank/ROOT/default tank
부팅 가능한 풀의 내용입니다. 부팅할 수 없는 풀에 대해 이 과정을 반복합니다. 이번에는 bootfs 속성을 ""로 설정합니다. 이제 모든 작업이 완료되었습니다.