[CFT] Patch to bsdinstall to support root-on-ZFS and GELI

Outback Dingo outbackdingo at gmail.com
Wed Oct 9 02:32:35 UTC 2013


On Tue, Oct 8, 2013 at 10:30 PM, Outback Dingo <outbackdingo at gmail.com>wrote:

>
>
>
> 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
>


I did just notice this....... permissions on sys


drwxrwxr-x   57 1000  1000       58 Feb 22  2008 sys

and super sweet layout

df -h
Filesystem                   Size    Used   Avail Capacity  Mounted on
zroot/bootenv/default         12G    778M     12G     6%    /
devfs                        1.0K    1.0K      0B   100%    /dev
zroot/tmp                     12G    176K     12G     0%    /tmp
zroot/usr/home                12G    184K     12G     0%    /usr/home
zroot/usr/local               12G    144K     12G     0%    /usr/local
zroot/usr/obj                 12G    144K     12G     0%    /usr/obj
zroot/usr/ports               12G    811M     12G     6%    /usr/ports
zroot/usr/ports/distfiles     12G    144K     12G     0%
 /usr/ports/distfiles
zroot/usr/ports/packages      12G    144K     12G     0%
 /usr/ports/packages
zroot/usr/src                 12G    547M     12G     4%    /usr/src
zroot/var                     12G    456K     12G     0%    /var
zroot/var/crash               12G    148K     12G     0%    /var/crash
zroot/var/db                  12G    240K     12G     0%    /var/db
zroot/var/db/pkg              12G    144K     12G     0%    /var/db/pkg
zroot/var/empty               12G    144K     12G     0%    /var/empty
zroot/var/log                 12G    196K     12G     0%    /var/log
zroot/var/mail                12G    144K     12G     0%    /var/mail
zroot/var/run                 12G    236K     12G     0%    /var/run
zroot/var/tmp                 12G    152K     12G     0%    /var/tmp





>
>
>
>
>
>>  > _______________________________________________
>> > 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