errata, typos, and warning at the top about obsolete information in this wiki
[ikiwiki.git] / docs / newhandbook / environmentquickstart / index.mdwn
1 # DragonFly BSD Quick Start
2
3 This document describes the DragonFly environment one will find on a newly installed system.  While you are getting started please pay careful attention to the version or level of DragonFly that the documentation was written for.  Some documentation on this site may be out of date. Watch for the marker `(obsolete)` on items that are out of date or need updating.
4
5 [[!toc levels=3 ]]
6
7 ## Disk layout
8
9 If you chose to install on the HAMMER file system during installation you will be left with a system with the following disk configuration:
10
11     # df -h
12     Filesystem                Size   Used  Avail Capacity  Mounted on
13     ROOT                      288G    12G   276G     4%    /
14     devfs                     1.0K   1.0K     0B   100%    /dev
15     /dev/serno/9VMBWDM1.s1a   756M   138M   558M    20%    /boot
16     /pfs/@@-1:00001           288G    12G   276G     4%    /var
17     /pfs/@@-1:00002           288G    12G   276G     4%    /tmp
18     /pfs/@@-1:00003           288G    12G   276G     4%    /usr
19     /pfs/@@-1:00004           288G    12G   276G     4%    /home
20     /pfs/@@-1:00005           288G    12G   276G     4%    /usr/obj
21     /pfs/@@-1:00006           288G    12G   276G     4%    /var/crash
22     /pfs/@@-1:00007           288G    12G   276G     4%    /var/tmp
23     procfs                    4.0K   4.0K     0B   100%    /proc
24
25 In this example
26
27 * `/dev/serno/9VMBWDM1` is the hard disk specified with serial number,
28 * `/dev/serno/9VMBWDM1.s1` is the first slice on the hard disk.
29
30 The disklabel looks at follows
31
32     # disklabel /dev/serno/9VMBWDM1.s1
33
34     # /dev/serno/9VMBWDM1.s1:
35     #
36     # Informational fields calculated from the above
37     # All byte equivalent offsets must be aligned
38     #
39     # boot space:    1044992 bytes
40     # data space:  312567643 blocks # 305241.84 MB (320069266944 bytes)
41     #
42     # NOTE: If the partition data base looks odd it may be
43     #       physically aligned instead of slice-aligned
44     #
45     diskid: e67030af-d2af-11df-b588-01138fad54f5
46     label:
47     boot2 data base:      0x000000001000
48     partitions data base: 0x000000100200
49     partitions data stop: 0x004a85ad7000
50     backup label:         0x004a85ad7000
51     total size:           0x004a85ad8200    # 305242.84 MB
52     alignment: 4096
53     display block size: 1024        # for partition display only
54
55     16 partitions:
56     #          size     offset    fstype   fsuuid
57       a:     786432          0    4.2BSD    #     768.000MB
58       b:    8388608     786432      swap    #    8192.000MB
59       d:  303392600    9175040    HAMMER    #  296281.836MB
60       a-stor_uuid: eb1c8aac-d2af-11df-b588-01138fad54f5
61       b-stor_uuid: eb1c8aec-d2af-11df-b588-01138fad54f5
62       d-stor_uuid: eb1c8b21-d2af-11df-b588-01138fad54f5
63
64
65 The slice has 3 partitions:
66
67 * `a` - for `/boot`
68 * `b` - for swap
69 * `d` - for `/`, a HAMMER file system labeled ROOT
70
71 When you create a HAMMER file system you must give it a label, here the installer labeled it as "ROOT" and mounted it as
72
73     ROOT                      288G    12G   276G     4%    /
74
75 A PFS is a Pseudo File System inside a HAMMER file system. The HAMMER file system in which the PFSes are created is referred to as the root file system. You should not confuse the "root" file system with the Label "ROOT", the label can be anything. It is just that the installer labeled it as ROOT because it is mounted as `/`.
76
77 Now inside the ROOT HAMMER file system you find the installed created 7 PFSes from the `df -h` output above, let us see how they are mounted in `/etc/fstab`:
78
79     # cat /etc/fstab
80
81     # Device                Mountpoint      FStype  Options         Dump    Pass#
82     /dev/serno/9VMBWDM1.s1a         /boot           ufs     rw      1       1
83     /dev/serno/9VMBWDM1.s1b         none            swap    sw      0       0
84     /dev/serno/9VMBWDM1.s1d         /               hammer  rw      1       1
85     /pfs/var                /var            null    rw              0       0
86     /pfs/tmp                /tmp            null    rw              0       0
87     /pfs/usr                /usr            null    rw              0       0
88     /pfs/home               /home           null    rw              0       0
89     /pfs/usr.obj    /usr/obj                null    rw              0       0
90     /pfs/var.crash  /var/crash              null    rw              0       0
91     /pfs/var.tmp    /var/tmp                null    rw              0       0
92     proc                    /proc           procfs  rw              0       0
93
94
95 The PFSes are mounted using a NULL mount because they are also HAMMER file systems. You can read more on NULL mounts here [mount_null(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=mount_null&section=8).
96
97 You don't need to specify a size for the PFSes like you do for logical volumes inside a volume group for LVM. All the free space in the root HAMMER file system is available to all the PFSs. That is the reason in the `df -h` output above you saw free space is same for all PFSes and the root HAMMER file system.
98
99 Now if you look in `/var`
100
101     # cd /var/
102     # ls
103     account   backups   caps   cron    empty   log   msgs   run   spool   yp  at        
104     cache     crash     db     games   lib     mail  preserve   rwho  tmp
105
106 you will find the above directories.
107
108 If you look at the status of one of the PFSes, e.g. `/usr` you will see `/var/hammer` is the default snapshot directory.
109
110     # hammer pfs-status /usr/
111     /usr/   PFS #3 {
112         sync-beg-tid=0x0000000000000001
113         sync-end-tid=0x0000000117ac6270
114         shared-uuid=f33e318e-d2af-11df-b588-01138fad54f5
115         unique-uuid=f33e31cb-d2af-11df-b588-01138fad54f5
116         label=""
117         prune-min=00:00:00
118         operating as a MASTER
119         snapshots directory defaults to /var/hammer/<pfs>
120     }
121
122 There is no "hammer" directory in `/var` now. That is because no snapshots are yet taken. You can verify this by checking the snapshots available for `/usr`
123
124     # hammer snapls /usr
125     Snapshots on /usr       PFS #3
126     Transaction ID          Timestamp               Note
127
128 Snapshots will appear automatically each night as the system performs housekeeping on the Hammer filesystem.  For a new volume, an immediate snapshot can be taken by running the command 'hammer cleanup'.  Among other activites, it will take a snapshot of the filesystem.
129
130     # sudo hammer cleanup
131     cleanup /                    - HAMMER UPGRADE: Creating snapshots
132             Creating snapshots in /var/hammer/root
133      handle PFS #0 using /var/hammer/root
134                snapshots - run
135                    prune - run
136                rebalance - run..
137                  reblock - run....
138                   recopy - run....
139     cleanup /var                 - HAMMER UPGRADE: Creating snapshots
140     [...]
141     cleanup /tmp                 - HAMMER UPGRADE: Creating snapshots
142     [...]
143     cleanup /usr                 - HAMMER UPGRADE: Creating snapshots
144     [...]
145     cleanup /home                - HAMMER UPGRADE: Creating snapshots
146     [...]
147     cleanup /usr/obj             - HAMMER UPGRADE: Creating snapshots
148     [...]
149     cleanup /var/crash           - HAMMER UPGRADE: Creating snapshots
150     [...]
151     cleanup /var/tmp             - HAMMER UPGRADE: Creating snapshots
152     [...]
153     cleanup /var/isos            - HAMMER UPGRADE: Creating snapshots
154     [...]
155
156 No snapshots were taken for `/tmp`, `/usr/obj` and `/var/tmp`. This is because the PFSes are flagged as `nohistory`. HAMMER tracks history for all files in a PFS, naturally this consumes disk space until the history is pruned. To prevent that temporary files on the mentioned PFSes (e.g., object files, crash dumps) consume disk space, the PFSes are marked as `nohistory`.
157
158 In `/var` will be a new directory called *hammer* with the following sub directories
159
160
161     # cd hammer/
162     # ls -l
163     total 0
164     drwxr-xr-x  1 root  wheel  0 Oct 13 11:51 home
165     drwxr-xr-x  1 root  wheel  0 Oct 13 11:42 root
166     drwxr-xr-x  1 root  wheel  0 Oct 13 11:43 tmp
167     drwxr-xr-x  1 root  wheel  0 Oct 13 11:51 usr
168     drwxr-xr-x  1 root  wheel  0 Oct 13 11:54 var
169
170
171 Well let us look inside `/var/hammer/usr`
172
173
174     # cd usr/
175     # ls -l
176     total 0
177     drwxr-xr-x  1 root  wheel   0 Oct 13 11:54 obj
178     lrwxr-xr-x  1 root  wheel  25 Oct 13 11:43 snap-20101013-1143 -> /usr/@@0x0000000117ac6cb0
179
180
181 We have a symlink pointing to the snapshot transaction ID shown below.
182
183
184     # hammer snapls /usr
185     Snapshots on /usr       PFS #3
186     Transaction ID          Timestamp               Note
187     0x0000000117ac6cb0      2010-10-13 11:43:04 IST -
188     #
189
190
191 You can read more about snapshots, prune, reblance, reblock, recopy etc from [hammer(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=hammer&section=8) especially look under the heading "cleanup [filesystem ...]"
192
193 You can learn more about PFS mirroring [here](http://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/)
194
195 In order to correctly map hard disk sernos to device names you can use the 'devattr' command.
196
197     # udevd
198     # devattr -d "ad*" -p serno
199     Device ad4:
200             serno = Z2AD9WN4
201     Device ad4s1:
202     Device ad4s1d:
203
204     Device ad5:
205             serno = 9VMRFDSY
206     Device ad5s1:
207     Device ad5s1d:
208
209     Device ad3:
210             serno = Z2AD9WLW
211     Device ad3s1:
212     Device ad3s1a:
213     Device ad3s1b:
214     Device ad3s1d:
215
216 Or if your disks are 'da', just change it as appropiate.
217
218 ## Configuring and Starting the SSH Server
219
220 Described in detail [[here|/docs/newhandbook/sshserver/]]
221
222 ## Software/Programs and Configuration Files Location 
223
224 DragonFly default installation contains the base software/programs from the DragonFly project itself and few other software from [pkgsrc](http://www.netbsd.org/docs/software/packages.html) which is the DragonFly official package management system. Ready to install binary software from pkgsrc is referred to as *packages*.
225
226 The base programs are located in the folders 
227
228     /bin    /sbin
229     /usr/bin   /usr/sbin
230
231 The configuration files for the base system can be found in `/etc`. There is also `/usr/local/etc` which is used by third-party programs. The software/programs from pkgsrc are located in `/usr/pkg/bin` and `/usr/pkg/sbin`. Their configuration files are found in `/usr/pkg/etc`.
232
233 ## Installing Third-party Software
234
235 Have a look at the [[dports howto|/docs/howtos/HowToDPorts/]] for an in-depth description about dealing with packaging systems. Note that DragonFly BSD has several older package managers (like `pkgin`), but that the most modern binary package installation system as of 2014, is `pkg`.
236
237 ### Using pkg
238
239 Read [[dports howto|/docs/howtos/HowToDPorts/]] then for some errata, read [[this|http://lists.dragonflybsd.org/pipermail/users/2013-November/090339.html]].
240
241
242 You can look at the help and the man page for the pkg tool like this:
243
244 `pkg help install`
245
246 Example: Read man page for pkg-install
247
248 `man pkg-install`
249
250
251 ### Installing an X desktop environment
252
253 If it's already on your system run X by typing `startx`. If it's not, install
254 it using `pkg install`.
255
256 `(obsolete)`
257 Slightly out of date instructions on installing a GUI (X desktop) environment  are in the [new handbook](http://www.dragonflybsd.org/docs/newhandbook/X/).
258