bin/175086: 9.1 does not boot from GPT partition that can have m

看板FB_bugs作者時間12年前 (2013/04/27 12:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
>Number: 175086 >Category: bin >Synopsis: 9.1 does not boot from GPT partition that can have more that 128 partition entries (worked under 7.4-STABLE, bug in sys/boot/common/gpt.c) >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jan 07 07:00:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Andre Albsmeier >Release: FreeBSD 9.1-PRERELEASE i386 >Organization: >Environment: System: FreeBSD 9.1-PRERELEASE >Description: Booting from a GPT partitioned disk that can have more than 128 parition entries (e.g. 248 in this case) fails under 9.1 but worked under 7.4. This is due to a test that was introduced in sys/boot/common/gpt.c: .... #define MAXTBLENTS 128 .... if (bcmp(hdr->hdr_sig, GPT_HDR_SIG, sizeof(hdr->hdr_sig)) != 0 || hdr->hdr_lba_self != hdrlba || hdr->hdr_revision < 0x00010000 || hdr->hdr_entsz < sizeof(struct gpt_ent) || hdr->hdr_entries > MAXTBLENTS || DEV_BSIZE % hdr->hdr_entsz != 0) { printf("%s: invalid %s GPT header\n", BOOTPROG, which); return (-1); } >How-To-Repeat: Create a disk using gpart create -s gpt -n 248 $disk and add bootcode and system to it. Add some delay into gptinit() of sys/boot/i386/gptboot/gptboot.c so you can read the error messages before reset occurs: invalid primary GPT header invalid backup GPT header unable to load GPT >Fix: The check should be removed since a GPT header with more than 128 possible parition entries is not invalid and can legally be created with gpart. >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org"
文章代碼(AID): #1HUrJk-P (FB_bugs)