1: [[!meta title="NetBSD/evbarm install via sysinst(8) on a SATA hard disk, USB stick or (u)SD card"]]
2:
3: In this document we will see step by step how to install NetBSD/evbarm on an
4: external media (SATA hard disk, USB stick or (u)SD card) using
5: [[!template id=man name="sysinst" section="8"]].
6:
7: As practical example a BananaPI and a SATA hard disk will be used.
8: However, the following instructions can be probably easily applied
9: on other SoCs and medias with little adjustments.
10:
11:
12: # Populating (u)SD card with `armv7.img`
13:
14: - Download or build `armv7.img`, e.g.:
15:
16: [[!template id=programlisting text="""
17: $ ftp http://cdn.NetBSD.org/pub/NetBSD/NetBSD-8.0/evbarm-earmv7hf/binary/gzimg/armv7.img.gz
18: $ gunzip armv7.img.gz
19: """]]
20:
21: - Write the image to (u)SD card:
22:
23: [[!template id=programlisting text="""
24: # dd if=armv7.img of=/dev/rsd0d bs=1m conv=sync
25: """]]
26:
27: - Write u-boot to (u)SD card. `u-boot` images are provided by
28: `sysutils/u-boot-<boardname>` packages, for example for Allwinner SoC:
29:
30: [[!template id=programlisting text="""
31: # dd if=/usr/pkg/share/u-boot/<boardname>/u-boot-sunxi-with-spl.bin of=/dev/rld0d bs=1k seek=8 conv=sync
32: """]]
33:
34: *TODOleot*: Adjust/provide u-boot incantantions to boot on a BPI
35:
36:
37: # Installing via sysinst(8)
38:
39: *TODOleot*: Document all sysinst(8) "screenshot"!
40:
41: Now that the SD card is populated with `armv7.img` we can login as `root` (by
42: default the password is empty) and run `sysinst`:
43:
44: [[!template id=programlisting text="""
45: # sysinst
46: """]]
47:
48: The first menu is about the system type (Respberry PI or Other), we select the
49: latter ("Other"):
50:
51: [[!template id=programlisting text="""
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62: +-------------------------------------+
63: | What kind of system do you have? |
64: | |
65: | a: Raspberry PI |
66: |>b: Other |
67: +-------------------------------------+
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78: """]]
79:
80: We want to install NetBSD/evbarm on the hard disk so let's select
81: "Install NetBSD to hard disk":
82:
83: [[!template id=programlisting text="""
84:
85: NetBSD/evbarm 8.0
86:
87: This menu-driven tool is designed to help you install NetBSD to a hard disk,
88: or upgrade an existing NetBSD system, with a minimum of work.
89: In the following menus type the reference letter (a, b, c, ...) to select an
90: item, or type CTRL+N/CTRL+P to select the next/previous item.
91: The arrow keys and Page-up/Page-down may also work.
92: Activate the current selection from the menu by typing the enter key.
93:
94: If you booted from a floppy, you may now remove the disk.
95: Thank you for using NetBSD!
96: +-----------------------------------------------+
97: | NetBSD-8.0 Install System |
98: | |
99: |>a: Install NetBSD to hard disk |
100: | b: Upgrade NetBSD on a hard disk |
101: | c: Re-install sets or install additional sets |
102: | d: Reboot the computer |
103: | e: Utility menu |
104: | f: Config menu |
105: | x: Exit Install System |
106: +-----------------------------------------------+
107:
108:
109:
110: """]]
111:
112: Before proceeding with the installation, if the hard disk had any important data
113: it is better to stop and doing a backup before proceeding. If it is empty and/or
114: we can safetely remove its data we can proceed:
115:
116: [[!template id=programlisting text="""
117:
118: You have chosen to install NetBSD on your hard disk. This will change
119: information on your hard disk. You should have made a full backup before
120: this procedure! This procedure will do the following things:
121: a) Partition your disk
122: b) Create new BSD file systems
123: c) Load and install distribution sets
124: d) Some initial system configuration
125:
126: (After you enter the partition information but before your disk is changed,
127: you will have the opportunity to quit this procedure.)
128:
129: Shall we continue?
130: +---------------+
131: | yes or no? |
132: | |
133: | a: No |
134: |>b: Yes |
135: +---------------+
136:
137:
138:
139:
140:
141:
142:
143: """]]
144:
145: Now we can see all the available disks. The hard disk attached via SATA is a
146: 120GB SSD recognized as `wd0`:
147:
148: [[!template id=programlisting text="""
149:
150: On which disk do you want to install NetBSD?
151:
152:
153: +-----------------------------------+
154: | Available disks |
155: | |
156: |>a: wd0 (112G, SanDisk SDSSDA120G) |
157: | b: Extended partitioning |
158: | x: Exit |
159: +-----------------------------------+
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175: """]]
176:
177: We now need to edit MBR partition table. We will create two MBR partitions: the
178: first one a FAT32 for `/boot` and the other for NetBSD. We select "Edit the MBR
179: partition table":
180:
181: [[!template id=programlisting text="""
182:
183: We are now going to install NetBSD on the disk wd0.
184:
185: NetBSD requires a single partition in the disk's MBR partition table, this is
186: split further by the NetBSD disklabel. NetBSD can also access file systems
187: in other MBR partitions.
188:
189: If you select 'Use the entire disk' then the previous contents of the disk
190: will be overwritten and a single MBR partition used to cover the entire disk.
191: If you want to install more than one operating system then edit the MBR
192: partition table and create a partition for NetBSD.
193:
194: A few hundred MB is enough for a basic installation, but you should allow
195: extra for additional software and user files.
196: Allow at least 5GB if you want to build NetBSD itself.
197: +---------------------------------+
198: | Which would you like to do? |
199: | |
200: |>a: Edit the MBR partition table |
201: | b: Use the entire disk |
202: +---------------------------------+
203:
204:
205:
206:
207:
208: """]]
209:
210: First we select the second entry ("b"), set the "type:" to "NetBSD":
211:
212: [[!template id=programlisting text="""
213:
214: The Current MBR partition table is shown below.
215: Flgs: a => Active partition, I => Install here.
216: Select the partition you wish to change:
217:
218: Total disk size 114473 MB.
219: +-----------------------------------------------------------+
220: Start( MB) |>a: type: unused |
221: ---------- | b: start: 0 MB |
222: a: | c: size: 0 MB |
223: >b: | d: end: 0 MB |
224: c: | e: active: No |
225: d: +-----------------------------------+ |
226: e: Change in| a: Don't change |linders/MB) |
227: x: Partition| b: Delete partition | |
228: |>c: NetBSD |-------------------------+
229: | d: Extended partition, LBA |
230: | e: FreeBSD/386BSD |
231: | f: OpenBSD |
232: | g: Linux native |
233: | h: Linux swap |
234: | i: DOS FAT12 |
235: | <: page up, >: page down |
236: +-----------------------------------+
237:
238:
239: """]]
240:
241: We reserve for the NetBSD MBR partition all the end of the disk,
242: starting at 92MB (1MB that will be empty and 91MB that will be for
243: the FAT32), we also select to make it active ("active: Yes") and
244: we will use it to install NetBSD ("install: Yes"):
245:
246: [[!template id=programlisting text="""
247:
248: The Current MBR partition table is shown below.
249: Flgs: a => Active partition, I => Install here.
250: Select the partition you wish to change:
251:
252: Total disk size 114473 MB.
253: +-----------------------------------------------------------+
254: Start( MB) | a: type: NetBSD |
255: ---------- | b: start: 92 MB |
256: a: | c: size: 114381 MB |
257: >b: | d: end: 114473 MB |
258: c: | e: active: Yes |
259: d: | f: install: Yes |
260: e: Change inpu| g: Change input units (sectors/cylinders/MB) |
261: x: Partition t|>x: Partition OK |
262: +-----------------------------------------------------------+
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273: """]]
274:
275: We now select the first partition ("a") and create a "Windows FAT32", starting
276: at 1MB and ending at 92MB before the "NetBSD" partition. We also make it active
277: ("active: Yes"):
278:
279: [[!template id=programlisting text="""
280:
281: The Current MBR partition table is shown below.
282: Flgs: a => Active partition, I => Install here.
283: Select the partition you wish to change:
284:
285: Total disk size 114473 MB.
286: +-----------------------------------------------------------+
287: Start( MB) | a: type: Windows FAT32 |
288: ---------- | b: start: 1 MB |
289: >a: | c: size: 91 MB |
290: b: 92 | d: end: 92 MB |
291: c: | e: active: Yes |
292: d: | f: install: No |
293: e: Change inpu| g: Change input units (sectors/cylinders/MB) |
294: x: Partition t|>x: Partition OK |
295: +-----------------------------------------------------------+
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306: """]]
307:
308: Here the final MBR partition table:
309:
310: [[!template id=programlisting text="""
311:
312: The Current MBR partition table is shown below.
313: Flgs: a => Active partition, I => Install here.
314: Select the partition you wish to change:
315:
316: Total disk size 114473 MB.
317:
318: Start( MB) Size( MB) Flg Kind
319: ---------- ---------- --- ----------------
320: >a: 1 91 a Windows FAT32
321: b: 92 114381 I NetBSD
322: c: unused
323: d: unused
324: e: Change input units (sectors/cylinders/MB)
325: x: Partition table OK
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337: """]]
338:
339: Now that the MBR partition table is written we can proceed to set
340: sizes of NetBSD partitions:
341:
342: [[!template id=programlisting text="""
343:
344: NetBSD uses a BSD disklabel to carve up the NetBSD portion of the disk into
345: multiple BSD partitions. You must now set up your BSD disklabel.
346:
347: You can use a simple editor to set the sizes of the NetBSD partitions, or
348: keep the existing partition sizes and contents.
349:
350: You will then be given the opportunity to change any of the disklabel fields.
351:
352: The NetBSD part of your disk is 114381 Megabytes. A full installation
353: requires at least 288 Megabytes without X and at least 348 Megabytes if the X
354: sets are included.
355: +-----------------------------------+
356: | Choose your installation |
357: | |
358: |>a: Set sizes of NetBSD partitions |
359: | b: Use existing partition sizes |
360: +-----------------------------------+
361:
362:
363:
364:
365:
366:
367:
368:
369: """]]
370:
371: We set the swap size to 4G and we reserve the rest of the space for "/":
372:
373: [[!template id=programlisting text="""
374:
375: You can now change the sizes for the system partitions. The default is to
376: allocate all the space to the root file system. However, you may wish to
377: have separate /usr (additional system files), /var (log files etc) or /home
378: (users' home directories) file systems.
379:
380: Free space will be added to the partition marked with a '+'.
381:
382: MB Cylinders Sectors Filesystem
383: a: 2208(110284) 4488 4523904 + /
384: b: 4096 8323 8389584 swap
385: c: 0 0 0 /tmp (mfs)
386: d: 0 0 0 /usr
387: e: 0 0 0 /var
388: f: 0 0 0 /home
389: g: Add a user defined partition
390: h: Change input units (sectors/cylinders/MB)
391: >x: Accept partition sizes. Free space 108076 MB, 13 free partitions.
392:
393:
394:
395:
396:
397:
398:
399:
400: """]]
401:
402: The summary of the current BSD disklabel is:
403:
404: [[!template id=programlisting text="""
405:
406: We now have your BSD disklabel partitions as:
407: This is your last chance to change them.
408:
409: Start MB End MB Size MB FS type Newfs Mount Mount point
410: --------- --------- --------- ---------- ----- ----- -----------
411: >a: 92 110375 110284 FFSv1 Yes Yes /
412: b: 110376 114472 4096 swap
413: c: 0 114472 114473 Whole disk
414: d: 0 0 0 unused
415: e: 1 91 91 Boot partition
416: f: 0 0 0 unused
417: g: Show all unused partitions
418: h: Change input units (sectors/cylinders/MB)
419: x: Partition sizes ok
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431: """]]
432:
433: We can adjust the disklabel, for example we can use FFSv2 for "/"
434: and for the disklabel "e" set its mount point to "/boot" in order
435: that an `/etc/fstab` entry will be populated (please note
436: that "/boot" will not be automatically mounted by default):
437:
438: [[!template id=programlisting text="""
439:
440: We now have your BSD disklabel partitions as:
441: This is your last chance to change them.
442:
443: Start MB End MB Size MB FS type Newfs Mount Mount point
444: --------- --------- --------- ---------- ----- ----- -----------
445: a: 92 110375 110284 FFSv2 Yes Yes /
446: b: 110376 114472 4096 swap
447: c: 0 114472 114473 Whole disk
448: d: 0 0 0 unused
449: e: 1 91 91 Boot partition /boot
450: f: 0 0 0 unused
451: g: Show all unused partitions
452: h: Change input units (sectors/cylinders/MB)
453: >x: Partition sizes ok
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465: """]]
466:
467: We have finally ready to proceed with
468: [[!template id=man name="sysinst" section="8"]] as usual and install
469: the installation sets. If you choose to install via FTP/HTTP please
470: note that the "Binary set directory" needs to be adjusted from
471: `/evbarm/binary/sets` to `/evbarm-earmv7hf/binary/sets` (it's
472: missing an `-earmv7hf' due different evbarm-s):
473:
474: [[!template id=programlisting text="""
475:
476: The following are the http site, directory, user, and password that will be
477: used. If "user" is "ftp", then the password is not needed.
478:
479: a: Host ftp.NetBSD.org
480: b: Base directory pub/NetBSD/NetBSD-8.0
481: >c: Binary set directory /evbarm-earmv7hf/binary/sets
482: d: Source set directory /source/sets
483: e: User ftp
484: f: Password
485: g: Proxy
486: h: Transfer directory /usr/INSTALL
487: i: Delete after install No
488: j: Configure network
489: k: Exit
490: x: Get Distribution
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501: """]]
502:
503: The installation will proceed as usual and for more information
504: please give a look to
505: [The NetBSD Guide](https://www.netbsd.org/docs/guide/en/chap-exinst.html#exinst-choose-media).
506:
507: *TODOleot*: add information how to populate `/boot` and prepare `boot.cmd`,
508: `boot.scr`.
509:
510: [[!template id=programlisting text="""
511: # mount /dev/wd0e /mnt
512: # cp -r /boot/* /mnt/
513: """]]
514:
515:
516: # References
517:
518: *TODOleot*: add a reference to the instructions shared via PR port-evbarm/50806.
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb