PDA

View Full Version : HOWTO: Install FreeBSD 9.0 RC-1 USB Flash, UFS+J (hands mode).


doorways
November 10th, 2011, 17:26
Do not judge harshly.
Today installed FreeBSD 9.0 RC1 and decided to share with applicants.
* applicants/competitors - people who are looking for information on the same topic. Sorry for my English.


Create USB Flash. **Be sure to read "D" section.
--------------------------------------------------
--------------------------------------------------
Now I have FreeBSD any version, and ftp/wget software.

Section A:
==========
Download FreeBSD-9.0-RC1-i386-memstick.img (ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RC1-i386-memstick.img),
# mkdir ~/freebsd && cd ~/freebsd
# wget "ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RC1-i386-memstick.img"

Section B:
==========
Connect your USB Flash device and clear it. My Flash detect how /dev/da0:
# dd if=/dev/zero of=/dev/da0 bs=512 count=4

Section C:
==========
Create LiveUSB FreeBSD 9.0 RC-1 Flash.
# dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k

Section D:
==========
Rewrite parameters of your LiveUSB FreeBSD 9.0 Flash. My Flash has one slice - it detected how /dev/da0a:
# moutn -t ufs /dev/da0a /mnt
# echo "/dev/ufs/FreeBSD_Install / ufs rw,noatime 1 1" > /mnt/etc/fstab
* I added opportunity write in root (and others) sectors on LiveUSB.

If you have 4K sector size in your HDD, add it parameters in loader.conf. In any case, you can use the alignment of 4k.
[!] Further in the text, we will focus on the alignment of 4k sector size.
# echo 'kern.cam.ada.0.quirks="1"' >> /mnt/boot/loader.conf
[!] My HDD detected how /dev/ada0. If you have device /dev/ada1 - you must write how: kern.cam.ada.1.quirks="1" .. etc.


Create partition on your HDD.
--------------------------------
--------------------------------
Section A:
==========
Run LiveUSB FreeBSD 9.0 with your USB Flash device.
# umount /mnt && reboot now
[!] No the disconnect your FreeBSD LiveUSB.
* In your BIOS choose option boot from USB device.

Section B:
==========
You are run LiveUSB FreeBSD 9 and choose button <Live CD> in "Welcome" window. Okay, you have root access in LiveUSB FreeBSD 9.0 RC-1 OS.
Enter:
login: root
password: <empty>

Section C:
==========
To check the settings.
* If you use 4k sector size alignment, and added 'kern.cam.ada.N.quirks' in /boot/loader.conf, you should get the following result:


# geom disk list ada0
Geom name: ada0
Providers:
1. Name: ada0
Mediasize: 320072933376 (298G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r0w0e0
descr: ST9320423AS
ident: (null)
fwsectors: 63
fwheads: 16

* We can see "Stripesize: 4096", else you see "Stripesize: 512" bytes.

Section D:
==========
Clear all partitions of your HDD.
* We will use the gpart. Details available here (http://www.wonkity.com/~wblock/docs/html/disksetup.html#_the_new_alternate_method_tt_gpart_ 8_tt). Thank wblock @.


# gpart show ada0
=> 63 312581745 ipsd0 MBR (298G)
63 11293632 1 !12 [active] (5.4G)
11293695 301288113 - free - (298G)

Now I have one partition:
# gpart delete -i 1 ada0

** If you have some others partition (2, 3, 4 ... 128) - remove it. If you do not do this - You can not run 'gpart destroy ada0'. You will receive a message: "Device busy!".

# gpart delete -i 2 ada0
# gpart delete -i 3 ada0
...
# gpart delete -i 128 ada0

Delete MBR sector (or other old scheme).
# gpart destroy ada0

Section E:
==========
Create new partition scheme on your HDD.
Create GPT scheme.
# gpart create -s GPT ada0

** In -b and -s flags use next cliche: Xk for Kb, Xm for Mb, Xg for Gb or empty, etc X - for bloks.
** I will use a 4k aligned and I use -a flag.


# gpart add -s 512k -a 4k -t freebsd-boot -l "boot" ada0
# gpart add -b 1m -s 2g -a 4k -t freebsd-ufs -l "root" ada0
# gpart add -s 4g -a 4k -t freebsd-swap -l "swap" ada0
# gpart add -s 4g -a 4k -t freebsd-ufs -l "var" ada0
# gpart add -s 4g -a 4k -t freebsd-ufs -l "tmp" ada0
# gpart add -s 32g -a 4k -t freebsd-ufs -l "usr" ada0
# gpart add -a 4k -t freebsd-ufs -l "home" ada0

Set the boot loader.
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
bootcode written to ada0

Result for my HDD:
# gpart show ada0
=> 34 625142381 ada0 GPT (298G)
34 6 - free - (3.0k)
40 1024 1 freebsd-boot (512k)
1064 4194304 2 freebsd-ufs (2.0G)
4195368 8388608 3 freebsd-swap (4.0G)
12583976 8388608 4 freebsd-ufs (4.0G)
20972584 8388608 5 freebsd-ufs (4.0G)
29361192 67108864 6 freebsd-ufs (32G)
96470056 528672352 7 freebsd-ufs (252G)
625142408 7 - free - (3.5k)

Checking the alignment:
# diskinfo -v ada0
ada0
512 # sectorsize
320072933376 # mediasize in bytes (298G)
625142448 # mediasize in sectors
4096 # stripsize
0 # stripoffset
620181 # Cylinders according to frimware.
16 # Heads according to frimware.
63 # Sectors according to frimware.
5VH4CYKB # Disk ident.
[!] echo stripoffset % stripsize | bc - should be 0.
# echo 0 % 4096 | bc
0
- it is good.

Section F:
==========
Create file system.
Use journaling softupdates SU+J - you should be use -j flag:
# newfs -J /dev/gpt/root
# newfs -j /dev/gpt/var
# newfs -J /dev/gpt/tmp
# newfs -j /dev/gpt/usr
# newfs -j /dev/gpt/home
* Sectors /root and /tmp has only magazine (use beeg -J flag), other has -SU+J scheme.


Install FreeBSD 9.0 on your HDD.
---------------------------------
---------------------------------
* For that I loved BSDINSTALL (against SYSINSTALL) - because you can turn off BSDINSTALL!
* Do not reboot and continue to work on!
Section A:
==========
Mount all slices for your system.
# mkdir -p /mnt/f9
# mount /dev/gpt/root /mnt/f9
# cd /mnt/f9
# mkdir -p boot var tmp usr
# chmod 1777 boot var tmp usr
# cd ~/

# mount /dev/gpt/var /mnt/f9/var
# mount /dev/gpt/tmp /mnt/f9/tmp
# mount /dev/gpt/usr /mnt/f9/usr

# mkdir -p /mnt/f9/usr/home
# mount /dev/gpt/home /mnt/f9/usr/home


Section B:
==========
Install system.
I recommend create folder on your USB Flash and create next scripts:
# mkdir -p /lorddevil
# cd /lorddevil/
# vi setupdevil
~~~~
#!/bin/sh
# Where will unpack the system.
rootsector='/mnt/f9'

# Whence do we unpack the system.
cd /usr/freebsd-dist

# Installation options (use the following packages):
# * All others pkg: doc.txz ports.txz src.txz
# * For x86 CPU (minimal): base.txz kernel.txz
# * For amd64 CPU (minimal): base.txz kernel.txz lib32.txz

# I use: "x86 CPU (minimal)":
for i in base.txz kernel.txz;
do (cat ${i} | tar --unlink -xpJf - -C ${rootsector:-/}); done

exit 0
:wq!
~~~~

Run it:
# chmod 1555 setupdevil
# ./setupdevil
* Do not have time to drink tea! Do not go!

Section C:
==========
Create /etc/fstab file.
Open /mnt/f9/etc/fstab file, and write it:

/dev/gpt/swap none swap sw 0 0
/dev/gpt/root / ufs rw 1 1
/dev/gpt/var /var ufs rw 2 2
/dev/gpt/tmp /tmp ufs rw 2 2
/dev/gpt/usr /usr ufs rw 2 2
/dev/gpt/home /usr/home ufs rw 2 2


Section D:
==========
At the end of...
You can immediately skip to step 2.
1. Now you can further customize your system.
Mount /dev slice and change the root point:

# mount -t devfs /dev /mnt/f9/dev
# chroot /mnt/f9 /bin/sh


* Once you're done (setting the Internet, installing ports, rebuild the kernel, etc.) exit this mode and go to step 2.
# exit

2. Unmount sectors and reboot your computer.
# umount /mnt/f9/usr/home
# umount /mnt/f9/usr
# umount /mnt/f9/tmp
# umount /mnt/f9/var
# umount /mnt/f9
# reboot now

* If something can not unmount use: umoutt -f <mount_point>
[!] Do not forget to disconnect the USB Flash.
[!] After load real system rewrite root password.

doorways
November 10th, 2011, 17:28
Discussions on the choice of file system and disk layout: here (http://forums.freebsd.org/showthread.php?t=27630) and here (http://forums.freebsd.org/showthread.php?t=27580).

doorways
November 10th, 2011, 17:30
This HOWTO is convenient to write in the text file and save in their own USB Flash.

Install FreeBSD 9.0 RC-1
(H A N D S M O D E)

Ukraine
10.11.2011
Doorways

------------------------------------------------------------------------------
Create USB Flash.
------------------------------------------------------------------------------
Now I have FreeBSD any version, and ftp/wget software.
A. Download FreeBSD-9.0-RC1-i386-memstick.img,
# mkdir ~/freebsd && cd ~/freebsd
# wget "ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/
ISO-IMAGES/9.0/FreeBSD-9.0-RC1-i386-memstick.img"

B. Connect your USB Flash device and clear it.
My Flash detect how /dev/da0:
# dd if=/dev/zero of=/dev/da0 bs=512 count=4

C. Create LiveUSB FreeBSD 9.0 RC-1 Flash.
# dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k

D. Rewrite parameters of your LiveUSB FreeBSD 9.0 Flash.
My Flash has one slice - it detected how /dev/da0a:
# moutn -t ufs /dev/da0a /mnt
# echo "/dev/ufs/FreeBSD_Install / ufs rw,noatime 1 1" > /mnt/etc/fstab
* I added opportunity write in root (and others) sectors on LiveUSB.

** If you have 4K sector size in your HDD, add it parameters in
loader.conf. In any case, you can use the alignment of 4k.
[!] Further in the text, we will focus on the alignment of 4k sector
size.
# echo 'kern.cam.ada.0.quirks="1"' >> /mnt/boot/loader.conf
* [!] My HDD detected how /dev/ada0. If you have device /dev/ada1 - you
must write how: kern.cam.ada.1.quirks="1" .. etc.

------------------------------------------------------------------------------
Create partition on your HDD.
------------------------------------------------------------------------------
A. Run LiveUSB FreeBSD 9.0 with your USB Flash device.
# umount /mnt && reboot now
* [!] No the disconnect your FreeBSD LiveUSB.
* In your BIOS choose option boot from USB device.

B. You are run LiveUSB FreeBSD 9 and choose button <Live CD> in "Welcome"
window. Okay, you have root access in LiveUSB FreeBSD 9.0 RC-1 OS.
Enter:
login: root
password: <empty>

C. To check the settings.
If you use 4k sector size alignment, and added 'kern.cam.ada.N.quirks'
in /boot/loader.conf, you should get the following result:

# geom disk list ada0
Geom name: ada0
Providers:
1. Name: ada0
Mediasize: 320072933376 (298G)
Sectorsize: 512
Stripesize: 4096
Stripeoffset: 0
Mode: r0w0e0
descr: ST9320423AS
ident: (null)
fwsectors: 63
fwheads: 16

* We can see "Stripesize: 4096", else you see "Stripesize: 512" bytes.

D. Clear all partitions of your HDD.
# gpart show ada0
=> 63 312581745 ipsd0 MBR (298G)
63 11293632 1 !12 [active] (5.4G)
11293695 301288113 - free - (298G)

Now I have one partition:
# gpart delete -i 1 ada0

** If you have some others partition (2, 3, 4 ... 128) - remove it. If
you do not do this - You can not run 'gpart destroy ada0'. You will
receive a message: "Device busy!".
# gpart delete -i 2 ada0
# gpart delete -i 3 ada0
...
# gpart delete -i 128 ada0

Delete MBR sector (or other old scheme).
# gpart destroy ada0

E. Create new partition scheme on your HDD.
Create GPT scheme.
# gpart create -s GPT ada0

** In -b and -s flags use next cliche: Xk for Kb, Xm for Mb, Xg for Gb
or empty, etc X - for bloks.
** I will use a 4k aligned and I use -a flag.

# gpart add -s 512k -a 4k -t freebsd-boot -l "boot" ada0
# gpart add -b 1m -s 2g -a 4k -t freebsd-ufs -l "root" ada0
# gpart add -s 4g -a 4k -t freebsd-swap -l "swap" ada0
# gpart add -s 4g -a 4k -t freebsd-ufs -l "var" ada0
# gpart add -s 4g -a 4k -t freebsd-ufs -l "tmp" ada0
# gpart add -s 32g -a 4k -t freebsd-ufs -l "usr" ada0
# gpart add -a 4k -t freebsd-ufs -l "home" ada0

Set the boot loader.
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
bootcode written to ada0

Result for my HDD:
# gpart show ada0
=> 34 625142381 ada0 GPT (298G)
34 6 - free - (3.0k)
40 1024 1 freebsd-boot (512k)
1064 4194304 2 freebsd-ufs (2.0G)
4195368 8388608 3 freebsd-swap (4.0G)
12583976 8388608 4 freebsd-ufs (4.0G)
20972584 8388608 5 freebsd-ufs (4.0G)
29361192 67108864 6 freebsd-ufs (32G)
96470056 528672352 7 freebsd-ufs (252G)
625142408 7 - free - (3.5k)

Checking the alignment:
# diskinfo -v ada0
ada0
512 # sectorsize
320072933376 # mediasize in bytes (298G)
625142448 # mediasize in sectors
4096 # stripsize
0 # stripoffset
620181 # Cylinders according to frimware.
16 # Heads according to frimware.
63 # Sectors according to frimware.
5VH4CYKB # Disk ident.
[!] echo stripoffset % stripsize | bc - should be 0.
# echo 0 % 4096 | bc
0
- it is good.

F. Create file system.
Use journaling softupdates SU+J - you should be use -j flag:
# newfs -J /dev/gpt/root
# newfs -j /dev/gpt/var
# newfs -J /dev/gpt/tmp
# newfs -j /dev/gpt/usr
# newfs -j /dev/gpt/home
* Sectors /root and /tmp has only magazine (use beeg -J flag), other has
-SU+J scheme.

------------------------------------------------------------------------------
Install FreeBSD 9.0 on your HDD.
------------------------------------------------------------------------------
* For that I loved BSDINSTALL (against SYSINSTALL) - because you can turn
off BSDINSTALL!
* Do not reboot and continue to work on!
A. Mount all slices for your system.
# mkdir -p /mnt/f9
# mount /dev/gpt/root /mnt/f9
# cd /mnt/f9
# mkdir -p boot var tmp usr
# chmod 1777 boot var tmp usr
# cd ~/

# mount /dev/gpt/var /mnt/f9/var
# mount /dev/gpt/tmp /mnt/f9/tmp
# mount /dev/gpt/usr /mnt/f9/usr

# mkdir -p /mnt/f9/usr/home
# mount /dev/gpt/home /mnt/f9/usr/home

B. Install system.
I recommend create folder on your USB Flash and create next scripts:
# mkdir -p /lorddevil
# cd /lorddevil/
# vi setupdevil
~~~~
#!/bin/sh

# Where will unpack the system.
rootsector='/mnt/f9'

# Whence do we unpack the system.
cd /usr/freebsd-dist

# Installation options (use the following packages):
# * All others pkg: doc.txz ports.txz src.txz
# * For x86 CPU (minimal): base.txz kernel.txz
# * For amd64 CPU (minimal): base.txz kernel.txz lib32.txz

# I use: "x86 CPU (minimal)":
for i in base.txz kernel.txz;
do (cat ${i} | tar --unlink -xpJf - -C ${rootsector:-/}); done

exit 0
~~~~
:wq!

# chmod 1555 setupdevil
# ./setupdevil

* Do not have time to drink tea! Do not go!

C. Create /etc/fstab file.
Open /mnt/f9/etc/fstab file, and write it:

/dev/gpt/swap none swap sw 0 0
/dev/gpt/root / ufs rw 1 1
/dev/gpt/var /var ufs rw 2 2
/dev/gpt/tmp /tmp ufs rw 2 2
/dev/gpt/usr /usr ufs rw 2 2
/dev/gpt/home /usr/home ufs rw 2 2

D. At the end of...
You can immediately skip to step 2.
1. Now you can further customize your system.
Mount /dev slice and change the root point:
# mount -t devfs /dev /mnt/f9/dev
# chroot /mnt/f9 /bin/sh

Once you're done (setting the Internet, installing ports, rebuild
the kernel, etc.) exit this mode and go to step 2.
# exit

2. Unmount sectors and reboot your computer.
# umount /mnt/f9/usr/home
# umount /mnt/f9/usr
# umount /mnt/f9/tmp
# umount /mnt/f9/var
# umount /mnt/f9
# reboot now

* If something can not unmount use: umoutt -f <mount_point>
[!] Do not forget to disconnect the USB Flash.
[!] After load real system rewrite root password.

gkontos
November 10th, 2011, 17:47
Just out of curiosity, why would you go to all this trouble instead of using bsdinstaller ?

PS wget is not part of the OS binaries. You can use fetch instead.

Regards,

George

doorways
November 10th, 2011, 17:57
Originally Posted by gkontos.
Just out of curiosity, why would you go to all this trouble instead of using bsdinstaller ?
It's very interesting! I recently went to the Windows OS (8 years, I ate, drank, never smoked, with Windows 95/98/200/NT) - UNIX opening for me - so I discovery it!

Originally Posted by gkontos.
PS wget is not part of the OS binaries. You can use fetch instead.
Ok, thanks. Thank you!

wblock@
November 10th, 2011, 18:20
umount is misspelled in the last part. Also, I suggest using SUJ on all filesystems to avoid long fsck times.

doorways
November 10th, 2011, 18:32
Originally Posted by wblock@.
umount(8) is misspelled in the last part.
Yes, thank you. My bad. I corrected all.

Originally Posted by wblock@.
Also, I suggest using SUJ on all filesystems to avoid long fsck times.

I wanted to increase the speed of these sections.
** For this reason, I had never thought to use the log to /tmp. (To understand this, read this post (http://forums.freebsd.org/showthread.php?t=27630).)

But thanks anyway! I'll think about it.