[CFT] Patch to bsdinstall to support root-on-ZFS and GELI
Outback Dingo
outbackdingo at gmail.com
Wed Oct 9 02:30:31 UTC 2013
On Tue, Oct 8, 2013 at 7:13 PM, Allan Jude <freebsd at allanjude.com> wrote:
> On 2013-10-08 16:17, Nathan Whitehorn wrote:
> > On 10/07/13 21:59, Allan Jude wrote:
> >> Devin Teske and I have been working on a big patch to bsdinstall to
> >> implement installing on a ZFS pool. It supports both GPT and MBR, the 4k
> >> sector gnop trick, and optional GELI encryption. We would like to commit
> >> this in time for 10.0-BETA1 so it needs some testing to work out any
> >> obvious bugs before we send it off to re@ to get it committed.
> >>
> >> It includes a single configuration menu that allows you to select all of
> >> the required details, including which drives to use (gets details from
> >> camcontrol, also includes an inspection utility that presents the
> >> detailed output of camcontrol inquiry/identify, and gpart show), what
> >> ZFS RAID level to use (taking in to consideration the selected number of
> >> drives), GPT/mbr, 4k YES/no, GELI yes/NO, pool name, etc.
> >>
> >>
> >> Additional, it includes some other changes to bsdinstall:
> >> 1. Change the default to the 'non-standard keyboard mapping' prompt to
> no
> >> 2. Replace the 3 separate dialogs to configure an ipv4 address with
> just 1
> >> 3. Remove the dialog asking if you wish to enable crash dumps, this
> >> feature has been combined into the regular 'services to enable' dialog
> >> and enabled by default
> >>
> >>
> >> You can browse the patches here:
> >> http://druidbsd.cvs.sf.net/viewvc/druidbsd/bsdinstall_zfs/
> >>
> >> I've built a bootonly.iso (10.0-ALPHA4) to make testing easier,
> >> available compressed (48 MB) or uncompressed (211 MB):
> >>
> >> http://www.allanjude.com/bsd/zfsbootonly_2013-10-06.iso.xz
> >>
> >> http://www.allanjude.com/bsd/zfsbootonly_2013-10-06.iso
> >>
> >>
> >> We look forward to your feedback
> >>
> > Thanks for doing this! I had a few comments:
> > 1. ZFS is not bootable on all architectures. Could you adjust that menu
> > item to only display for i386, amd64, and (I think?) sparc64. Use uname
> > -m, not -p, for this.
> I had not considered that, I'll make that change
>
> > 1a. The script is broken on sparc64 in any case, which uses VTOC8
> > instead of GPT.
> I'll disable sparc64 as well
>
> > 2. Why are you using camcontrol? That is guaranteed not to work on
> > non-CAM systems. You should use the GEOM ident string if you need an ID.
> The GEOM ident string doesn't do enough to help the user identify which
> drive is which.
> More data is not exposed anywhere that I could find
>
> What we really need, is dev.ada.0.desc% like we have for network
> interfaces and a slew of other devices. GEOM data is great, but it is
> not exposed in a shell friendly way any place that I could find, other
> than the sysctl with DOT and XML data.
>
> > 3. Any plans to integrate this into the regular partition editor? ZFS
> > support is important enough that I will definitely not get in the way,
> > even as a bolt-on, but it would be a shame for it to stay that way. The
> > editor is also designed for ZFS to be added.
> I am a sysadmin, not a programmer. I can't write C. Most people
> deploying servers can't write C. I agree with Devin Teske, if everything
> was in shell it would be a lot more usable for non-developers, who
> probably make up the majority of people who deploy FreeBSD.
>
> > 4. What is this gnop stuff for?
> yeah, we align the partitions and the blocks to ensure optimal
> performance on 'advanced format' drives, there is no real downside for
> older drives, and it saves you from headaches in the future.
>
> > 5. I think some substantial part of the MBR code will blow up if you are
> > reinitalizing a previously formatted disk (the bsdlabel will be retasted
> > and come back from the dead).
> We try to do what we can here, including creating a fresh GPT and MBR
> and blowing them away to ensure that anything left over is really dead.
> We also use zpool labelclear, which doesn't check if there ever was a
> ZFS label, it just blindly overwrites the spots where the label would go.
> I'll add some additional napalm to ensure there are no zombie partitions.
>
> > -Nathan
>
I can now confirm with the latest patches from 1.5 hours ago applied i can
now install and boot
into a zfs-on-root system under XEN...... now you seriously ROCK! great
work ....... and thanks
dmesg
Copyright (c) 1992-2013 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.0-ALPHA5 #1 r256169M: Wed Oct 9 01:03:43 EDT 2013
dingo at current.optimcloud.com:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
XEN: Hypervisor version 4.3 detected.
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz (2494.38-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x306a9 Family = 0x6 Model = 0x3a
Stepping = 9
Features=0x1783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2,HTT>
Features2=0xffb82203<SSE3,PCLMULQDQ,SSSE3,CX16,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND,HV>
AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
AMD Features2=0x1<LAHF>
Standard Extended Features=0x200<ENHMOVSB>
real memory = 2147483648 (2048 MB)
avail memory = 2048917504 (1954 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: <Xen HVM>
ioapic0: Changing APIC ID to 1
MADT: Forcing active-low polarity and level trigger for SCI
ioapic0 <Version 1.1> irqs 0-47 on motherboard
random: <Hardware, Intel IvyBridge+ RNG> initialized
kbd1 at kbdmux0
xen_et0: <Xen PV Clock> on motherboard
Event timer "XENTIMER" frequency 1000000000 Hz quality 950
Timecounter "XENTIMER" frequency 1000000000 Hz quality 950
acpi0: <Xen> on motherboard
acpi0: Power Button (fixed)
acpi0: Sleep Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
cpu0: <ACPI CPU> on acpi0
attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <32-bit timer at 3.579545MHz> port 0xb008-0xb00b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
isab0: <PCI-ISA bridge> at device 1.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 WDMA2 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xc260-0xc26f at device 1.1 on pci0
ata0: <ATA channel> at channel 0 on atapci0
ata1: <ATA channel> at channel 1 on atapci0
uhci0: <Intel 82371SB (PIIX3) USB controller> port 0xc240-0xc25f irq 23 at
device 1.2 on pci0
usbus0: controller did not stop
usbus0 on uhci0
pci0: <bridge> at device 1.3 (no driver attached)
vgapci0: <VGA-compatible display> mem
0xf0000000-0xf1ffffff,0xf3020000-0xf3020fff at device 2.0 on pci0
xenpci0: <Xen Platform Device> port 0xc000-0xc0ff mem 0xf2000000-0xf2ffffff
irq 28 at device 3.0 on pci0
xenstore0: <XenStore> on xenpci0
pcm0: <AudioPCI ES1370> port 0xc100-0xc1ff irq 36 at device 5.0 on pci0
pcm0: <Playback: DAC1,DAC2 / Record: ADC>
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse Explorer, device ID 4
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: does not respond
device_attach: fdc0 attach returned 6
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
fdc0: No FDOUT register!
ppc0: cannot reserve I/O port range
ZFS NOTICE: Prefetch is disabled by default if less than 4GB of RAM is
present;
to enable, add "vfs.zfs.prefetch_disable=0" to
/boot/loader.conf.
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 10.000 msec
usbus0: 12Mbps Full Speed USB v1.0
xenbusb_front0: <Xen Frontend Devices> on xenstore0
ugen0.1: <Intel> at usbus0
uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
xn0: <Virtual Network Interface> at device/vif/0 on xenbusb_front0
xn0: Ethernet address: 00:16:3e:56:4c:9d
xenbusb_back0: <Xen Backend Devices> on xenstore0
xctrl0: <Xen Control Device> on xenstore0
xn0: backend features: feature-sg feature-gso-tcp4
xbd0: 16384MB <Virtual Block Device> at device/vbd/768 on xenbusb_front0
xbd0: attaching as ada0
xbd0: features: flush, write_barrier
xbd0: synchronize cache commands enabled.
Netvsc initializing... Timecounter "TSC-low" frequency 1247190583 Hz
quality 800
Root mount waiting for: usbus0
uhub0: 2 ports with 2 removable, self powered
Trying to mount root from zfs:zroot/bootenv/default []...
zpool status
pool: zroot
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE
CKSUM
zroot ONLINE 0 0
0
gptid/0986ae37-3089-11e3-9a23-00163e564c9d ONLINE 0 0
0
errors: No known data errors
uname -a
FreeBSD zfsroot.xxxxxxxxx.com 10.0-ALPHA5 FreeBSD 10.0-ALPHA5 #1 r256169M:
Wed Oct 9 01:03:43 EDT 2013
xxxxxx at current.xxxxxxx.com:/usr/obj/usr/src/sys/GENERIC
amd64
> > _______________________________________________
> > freebsd-current at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-current
> > To unsubscribe, send any mail to "
> freebsd-current-unsubscribe at freebsd.org"
>
>
> --
> Allan Jude
>
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>
More information about the freebsd-current
mailing list