Dfly Multiboot Installation Notes: Feedback
Martin Ivanov
martin.ivanov at greenpocket.de
Tue Apr 28 22:59:50 PDT 2020
Hello George,
Thank you very much for your feedback. Having a partition that is
accessible to all operating systems (OSs) is a good idea. Instead of
devoting a partition solely to the purpose of being shared, one could
e.g. make the /home partition of the linux system ext2 and use it also
as a shared partition. So long as I know ext2 is supported by most OSs,
Linuxes and BSDs for sure.
With regard to my multiboot tutorial, I recently tested it. The only
major bug I found was that in contrast to hammer, hammer2 PFSs cannot be
null mounted. They can only be mounted as hammer2 file systems. With
this change and some other minor modifications I am soon going to
publish a first draft of the multiboot tutorial on the web page. I hope
till then it will become clear in which part of the online documentation
the tutorial should be placed :).
Best regards,
Martin
On 28.04.20 18:40, Siju George wrote:
> I was wanting to find out something like this. I think directions to
> add a small vfat/msdos/fat32 partition to share files between these
> OSes in the documentation would be great :-)
>
> Thank you.
>
> --Siju
>
> On Tue, Apr 21, 2020 at 4:10 PM Martin Ivanov
> <martin.ivanov at greenpocket.de <mailto:martin.ivanov at greenpocket.de>>
> wrote:
>
> Hello,
>
> I promised to prepare a page on multiboot installation of
> DragonFly. My
> notes are at the end of this message. Approximately 95% of the
> suggested
> procedure have been tested. I would be happy to get your feedback and
> critics. I would like to know whether you think the notes are
> worthy of
> getting space in the documentation and if yes, where, in which
> part of
> the documentation.
>
> Thank you very much in advance!
>
>
> DragonFlyBSD Multiboot Installation Notes
>
> Note that there are non-existent as well as empty directories on the
> installation medium. These are:
> Non-existent:
> /usr/distfiles
> /usr/dports
> /usr/src
> Empty:
> /usr/obj
> /var/cache
> /tmp
>
> Installation steps:
> Do:
>
> nvmectl info
> camcontrol devlist
>
> to see which devices you have. We assume we have nvme0. Then:
>
> dd if=/dev/zero of=/dev/nvme0 count=1024 bs=1m
>
> Partition the hard drive:
>
> gpt destroy nvme0
> gpt create -f nvme0
> gpt -v show nvme0
>
> Add a slice with index 0.
> -s specifies the slice size in sectors. A sector has 512 bytes.
> For an
> EFI Partition of half a GiB oder 512 MiB: (512 * 1024 ** 2) / 512=
> 1048576
> -t specifies slice type: efi, swap, ufs, hfs, linux, dfly, hammer2.
>
> gpt add -i 0 -s 1048576 -t efi nvme0
>
> Add labels: labels must be UTF-8
>
> gpt label -i 0 -l "EFI System" nvme0
>
> gpt -v show nvme0
>
> Add a 200GiB DragonFly partition
>
> gpt add -i 1 -s 419430400 -t dfly nvme0
>
> gpt -v show nvme0
> gpt label -i 1 -l "DragonFly BSD" nvme0
> disklabel64 -r -w nvme0s1 auto
> disklabel64 -e nvme0s1
> # a: 1G * 4.2BSD
> # b: 16G * swap
> # d: * * HAMMER2
> gpt add -i 2 -s 419430400 -t "Unused" nvme0
>
> Add a 200 GiB OpenBSD slice
>
> gpt label -i 2 -l "OpenBSD" nvme0
> gpt -v show nvme0
> gpt add -i 3 -t linux nvme0
>
> Use the remaining free space for Slackware
>
> gpt label -i 3 -l "Slackware Linux" nvme0
> gpt -v show nvme0
>
> Make filesystems and mount them:
>
> newfs_msdos nvme0s0
> newfs nvme0s1a
> newfs_hammer2 -L ROOT /dev/nvme0s1d
> mount_hammer2 nvme0s1d /mnt
> mkdir /mnt/boot
> mount nvme0s1a /mnt/boot
>
> Special care for the EFI System partition (ESP):
>
> mkdir /efimnt
> mount_msdos /dev/nvme0s0 /efimnt
>
> Take care of the ESP:
>
> mkdir -p /efimnt/EFI/BOOT
>
> Install rEFInd:
>
> cd /efimnt/EFI/BOOT
> mount_? /dev/da?s? /usb
> cp -r /usb/*/refind-bin-0.12.0/refind/* .
>
> Remove the unnecessary drivers, efi executables and tools. E.g,
> for an
> amd64 machine you have to remove the *aa64* and *ia32* files and
> directories.
>
> mv refind_x64.efi bootx64.efi
> cp /boot/boot1.efi bootx64-dragonflybsd.efi
> mv refind.conf-sample refind.conf
> vi refind.conf
> menuentry "DragonFly BSD" {
> loader /EFI/BOOT/bootx64-dragonflybsd.efi
> icon /EFI/BOOT/icons/os_dragonflybsd.png
> }
> menuentry OpenBSD: analogical
> menuentry Slackware: analogical
>
> cd
>
> Create the H2 PFSs:
>
> hammer2 -s /mnt pfs-create usr
> hammer2 -s /mnt pfs-create usr.dports
> hammer2 -s /mnt pfs-create usr.local
> hammer2 -s /mnt pfs-create usr.src
> hammer2 -s /mnt pfs-create var
> hammer2 -s /mnt pfs-create home
> hammer2 -s /mnt pfs-create build
>
> Create the mount points for the PFSs:
>
> mkdir /mnt/usr
> mkdir /mnt/usr/dports
> mkdir /mnt/usr/local
> mkdir /mnt/usr/src
> mkdir /mnt/var
> mkdir /mnt/home
> mkdir /mnt/build
>
> Null-mount the non-empty PFSs:
>
> mount_null nvme0s1d at usr /mnt/usr
> mount_null nvme0s1d at usr.local /mnt/usr/local
> mount_null nvme0s1d at var /mnt/var
> mount_null nvme0s1d at build /mnt/build
>
> Create the file systems under /build: these are the file systems
> that do
> not need backup; /build is something like scratch space in DragonFly:
>
> mkdir /mnt/build/usr.distfiles
> mkdir /mnt/build/usr.obj
> mkdir /mnt/build/var.cache
> mkdir /mnt/build/var.crash
> mkdir /mnt/build/var.log
> mkdir /mnt/build/var.spool
>
> Create the mount points for the non-existent /build null mounts:
>
> mkdir /mnt/usr/distfiles
> Mount the /build null mounts:
> mount_null /mnt/build/usr.distfiles /mnt/usr/distfiles
> mount_null /mnt/build/usr.obj /mnt/usr/obj
> mount_null /mnt/build/var.cache /mnt/var/cache
> mount_null /mnt/build/var.crash /mnt/var/crash
> mount_null /mnt/build/var.log /mnt/var/log
> mount_null /mnt/build/var.spool /mnt/var/spool
>
> Mount the TMPFSs:
>
> mount_tmpfs tmpfs /mnt/tmp
> mount_tmpfs tmpfs /mnt/var/tmp
> mount_tmpfs tmpfs /mnt/var/run
>
> Install DragonFly by copying the non-empty file systems. Luckily,
> cpdup
> won't cross mount boundaries on the source or destination, so it
> takes a
> few commands:
>
> cpdup / /mnt
> cpdup /boot /mnt/boot
> cpdup /usr /mnt/usr
> cpdup /usr/local /mnt/usr/local
> cpdup /var /mnt/var
>
> Copy the non-empty /build null mounts:
>
> cpdup /var/crash /mnt/var/crash
> cpdup /var/log /mnt/var/log
> cpdup /var/spool /mnt/var/spool
>
> Copy the non-empty TMPFSs:
>
> cpdup /var/tmp /mnt/var/tmp
> cpdup /var/run /mnt/var/run
>
> Use the correct /etc:
>
> mv /mnt/etc /mnt/etc.live
> mv /mnt/etc.hdd /mnt/etc
>
> There is no fstab in /etc.hdd. The one from /etc.live has to be
> copied
>
> cp /mnt/etc.live/fstab.example /mnt/etc/fstab
>
> Describe ALL mounts in fstab:
>
> vi /mnt/etc/fstab
> #edit
> /dev/nvme0s1a /boot ufs rw 1 1
> /dev/nvme0s1b none swap sw 0 0
> /dev/nvme0s1d / hammer2 rw 1 1
> /dev/nvme0s1d at usr /usr null rw 0 0
> /dev/nvme0s1d at usr.dports /usr/dports null rw 0 0
> /dev/nvme0s1d at usr.local /usr/local null rw 0 0
> /dev/nvme0s1d at usr.src /usr/src null rw 0 0
> /dev/nvme0s1d at var /var null rw 0 0
> /dev/nvme0s1d at home /home null rw 0 0
> /dev/nvme0s1d at build /build null rw 0 0
> /build/usr.distfiles /usr/distfiles null rw 0 0
> /build/usr.obj /usr null rw 0 0
> /build/var.cache /var/cache null rw 0 0
> /build/var.crash /var/crash null rw 0 0
> /build/var.log /var/log null rw 0 0
> /build/var.spool /var/spool null rw 0 0
> tmpfs /tmp tmpfs rw 0 0
> tmpfs /var/tmp tmpfs rw 0 0
> tmpfs /var/run tmpfs rw 0 0
> proc /proc procfs rw 0 0
>
> #nosuid option for /home ?
>
> vi /mnt/boot/loader.conf
> #add
> vfs.root.mountfrom:"hammer2:nvme0s1d"
> umount /efimnt
> umount /mnt/boot
> umount /mnt/
> halt
> # remove the installation media
> # press any key to reboot
>
>
>
> --
> Dr. Martin A. Ivanov
> GreenPocket GmbH - Kundennähe durch Smart Metering -
> Labor 3.09 | Schanzenstraße 6-20 | 51063 Köln
> Telefon +49 | 221 | 355095-0
> Fax +49 | 221 | 355095-99
> E-Mail martin.ivanov at greenpocket.de
> <mailto:martin.ivanov at greenpocket.de>
>
> Webadresse www.greenpocket.de <http://www.greenpocket.de>
>
--
Dr. Martin A. Ivanov
GreenPocket GmbH - Kundennähe durch Smart Metering -
Labor 3.09 | Schanzenstraße 6-20 | 51063 Köln
Telefon +49 | 221 | 355095-0
Fax +49 | 221 | 355095-99
E-Mail martin.ivanov at greenpocket.de
Webadresse www.greenpocket.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dragonflybsd.org/pipermail/users/attachments/20200429/8f8e5635/attachment-0004.htm>
More information about the Users
mailing list