edgecase
[Solzhenitsyn] said that there's something worse than death. That's a good thing to know. And that's the death of your soul (whether the soul is immortal or not - it's a psychological idea). There are conditions under which it would be better not to live. That's the cry for freedom, I would say. Because life without truth is hell. That's the right way of looking at it.
~ Jordan Peterson
Author: StJohn Piano
Published: 2018-01-09
Datafeed Article 28
This article has been digitally signed by Edgecase Datafeed.
26153 words - 7624 lines - 191 pages



GOAL:



Make an installation USB memory stick using the smallest available Centos 6.9 binary. Use this stick to install Centos 6.9 on Kalkin.



CONTENTS:



- Goal
- Contents
- Brief Summary
- Downloadable Assets
- Discoveries
- Project Log



BRIEF SUMMARY:



This is a long and meandering project. It took me a long time to figure out a solution. I learned a lot of new things along the way. This log may be of use either to someone who is tackling a very similar problem or simply as an example of how to approach/explore/solve an unknown problem.


I was able to create an Centos 6.9 installation USB memory stick.

I repeatedly failed to install Centos onto Kalkin's hard disk.

The hard disk in Kalkin contained BIOS RAID metadata. I think it was formatted to be part of a RAID array. This raised an error in the Centos installation program, which I did not understand and ignored.

I explored various approaches, which led to a workable understanding of changing BIOS settings (e.g. the boot order), changing Grub settings during boot, bootloaders and the boot process, and the use of a shell built into the Centos installation program.

Eventually, I tried to run the Centos installation program while two memory sticks were inserted. It asked which of the devices I wanted to install to, rather than choosing the only available disk by default, which is what it would do if only one device was connected. I realised that the Centos installation program, at that point in the setup process, was unable to recognise the hard disk. It had previously tried to notify me that this was the case by raising an error earlier in the process.

I was able to use the shell built into the Centos installation program to reformat the hard disk into a usable format.

The Centos installation program was then able to proceed normally.

I now have a working instance of Centos 6.9 Minimal installed on Kalkin.



DOWNLOADABLE ASSETS:



The Centos 6.9 ISO image file and the Centos 6 signing key:

centos-6.9-x86_64-minimal.iso [paywalled]
rpm-gpg-key-centos-6


Everything else:

0_readme.txt
md5sums.txt
md5sums.txt.asc
readme.txt
sha1sums.txt
sha1sums.txt.asc
sha256sums.txt
sha256sums.txt.asc


Note: I have changed all asset names to be lower case. This affects 0_README.txt, README.txt, and RPM-GPG-KEY-CentOS-6.

Note: 0_readme.txt is identical to readme.txt.



DISCOVERIES:



The
/dev/sd*
and
/dev/hd*
disk identifiers will not necessarily be consistent between boots.

The BIOS is stored in a read-only-memory (ROM) chip on the motherboard. When the computer is turned on, the processor will begin executing instructions stored in the BIOS.

The "Missing ISO 9660 Image" error during the installation process means that the Centos installation program can't find the Centos ISO image file that it wants to write to the target disk.

The boot process for an operating system can be interrupted at the Grub bootloader layer. The Grub configuration and target operating system can be changed here before continuing with the boot process.

The Centos installation program contains a shell. It can be reached by pressing Ctrl-Alt-F2 when you reach the first GUI screen. Press Ctrl-Alt-F6 to switch back to the GUI.

If the Centos installation program only sees one disk, it will assume that this is the target disk for installation. If it sees two or more disks, it will ask the user which disks to treat as target disks (and which one of those should have the bootloader installed).

The Centos installation program does not use the BIOS boot order to choose its target drive.

A disk can be divided into partitions. A filesystem can be written onto a partition.

To always mount a filesystem on boot, add a command to specify this in the
/etc/fstab
file.

A
lost+found
directory within the mountpoint directory typically indicates the root of an Ext* filesystem.

A new filesystem can be tested by writing and removing a file on it.

The shell in the Centos installation program can be used to partition and format a disk e.g. the hard disk.

Commands successfully used in this shell:

[anaconda root@localhost /]# fdisk -l


[anaconda root@localhost /]# ls -1 /mnt


[anaconda root@localhost /]# mkdir /mnt/test1


[anaconda root@localhost /]# mount /dev/sda1 /mnt/test1


[anaconda root@localhost /]# umount /dev/sda1


[anaconda root@localhost /]# ps -ef | grep sd


[anaconda root@localhost /]# ls -a1 /mnt/isodir


[anaconda root@localhost /]# find / -type f -name "*.iso"


[anaconda root@localhost /]# dd --version


[anaconda root@localhost /]# df -h


[anaconda root@localhost /]# cp /mnt/test1/CentOS-6.9-x86_64-minimal.iso /mnt/isodir/CentOS-6.9-x86_64-minimal.iso


[anaconda root@localhost /]# grub --version


[anaconda root@localhost /]# grub


[anaconda root@localhost /]# parted --version


[anaconda root@localhost /]# parted -l


[anaconda root@localhost /]# parted /dev/sdh mklabel msdos


[anaconda root@localhost /]# parted -a opt /dev/sdh mkpart primary ext4 0% 100%


[anaconda root@localhost /]# mkfs.ext4 -L mainpartition /dev/sdh1


[anaconda root@localhost /]# blkid


[anaconda root@localhost /]# mount -o defaults /dev/sdh1 /mnt/test


[anaconda root@localhost /]# echo "success" > /mnt/test/foo.txt


[anaconda root@localhost /]# cat /mnt/test/foo.txt


[anaconda root@localhost /]# rm /mnt/test/foo.txt


The main point of the boot process appears to be to get the operating system's main() loop loaded into RAM and get the CPU to target this loop. Various layers exist between powering on the motherboard and arriving at the main loop of the operating system.

I think the boot sequence works roughly like this:
1. Power on the motherboard.
2. Motherboard is constructed such that the CPU will begin execution of the BIOS (stored in a ROM chip on motherboard).
3. BIOS will attempt to boot from each available device in the order specified in the BIOS boot sequence list.
4. BIOS loads bootloader (e.g. Grub) into system memory (RAM). Bootloader is stored on the bootable device, not on the motherboard.
5. Bootloader loads operating system (e.g. Centos) into RAM. Bootloader may have multiple stages.
6. Bootloader turns over control to the operating system's main() loop and ceases to be used.



PROJECT LOG:



I have already confirmed that Centos 6.9 will boot and run on Kalkin by using a Centos 6.9 bootable USB stick.


My work machine: 2008 Apple MacBook running Mac OS X 10.6.8 Snow Leopard
Name of work machine: Aineko [0]


Make a directory for this project. In my case, it's called centos_minimal_stick.

Browse to wiki.centos.org/Download

Note: I'm using the Chrome browser, version 49.0.2623.112 (64-bit).

In the Base Distribution section, in the row where CentOS Linux Version == 6, click x86_64.
This leads to isoredirect.centos.org/centos/6/isos/x86_64/

In the Actual Country section, choose first mirror:
mirror.ox.ac.uk/sites/mirror.centos.org/6.9/isos/x86_64

Files listed:
- 0_README.txt
- CentOS-6.9-x86_64-LiveDVD.iso
- CentOS-6.9-x86_64-LiveDVD.torrent
- CentOS-6.9-x86_64-bin-DVD1.iso
- CentOS-6.9-x86_64-bin-DVD1to2.torrent
- CentOS-6.9-x86_64-bin-DVD2.iso
- CentOS-6.9-x86_64-minimal.iso
- CentOS-6.9-x86_64-minimal.torrent
- CentOS-6.9-x86_64-netinstall.iso
- CentOS-6.9-x86_64-netinstall.torrent
- README.txt
- md5sum.txt
- md5sum.txt.asc
- sha1sum.txt
- sha1sum.txt.asc
- sha256sum.txt
- sha256sum.txt.asc

Right-click 0_README.txt and choose "Save Link As ...".
Save it to the project directory centos_minimal_stick.

Open a terminal and change directory to the project directory centos_minimal_stick.

aineko:centos_minimal_stick stjohnpiano$ ls

0_README.txt


aineko:centos_minimal_stick stjohnpiano$ cat 0_README.txt


What images are in this directory

CentOS-6.9-x86_64-netinstall.iso
This is the network install and rescue image.
This image is designed to be burned onto a CD. You then boot your computer off the CD.

CentOS-6.9-x86_64-minimal.iso
The aim of this image is to install a very basic CentOS 6.9 system, with the minimum of packages needed to have a functional system.
Please burn this image onto a CD and boot your computer off it. A preselected set of packages will be installed on your system. Everything else needs to be installed using yum.
The set of packages installed by this image is identical to the one installed when choosing the group named "Minimal" from the full DVD image.

CentOS-6.9-x86_64-bin-DVD1.iso
CentOS-6.9-x86_64-bin-DVD2.iso
These two dvd images contain the entire base distribution.
Please burn DVD1 onto a DVD and boot your computer off it.
A basic install will not need DVD2.
After the installation is complete, please run "yum update" in order to update your system.

CentOS-6.9-x86_64-LiveDVD.iso
This is a DVD live image of CentOS 6.9 designed to be burned onto a DVD. You then boot your computer using that DVD.
Please read http://wiki.centos.org/Manuals/ReleaseNotes/CentOSLiveDVD6.9 for more details about this image.
The disk can also be used to install CentOS 6.9 onto your computer but without offering any package selection options at install time.


Remember that in order to be able to partition your disk you will need to run the GUI installer which in turns needs enough RAM. The same is true for the network setup step.
The release notes ( http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.9 ) provide more details about these aspects.



Key section that interests me:
CentOS-6.9-x86_64-minimal.iso
The aim of this image is to install a very basic CentOS 6.9 system, with the minimum of packages needed to have a functional system.
Please burn this image onto a CD and boot your computer off it. A preselected set of packages will be installed on your system. Everything else needs to be installed using yum.
The set of packages installed by this image is identical to the one installed when choosing the group named "Minimal" from the full DVD image.


I'll download this .iso file, check the hashes and signatures, and write it to a memory stick.

I'll work through the steps I explored in Making a Centos 6.9 bootable USB memory stick on Mac OS X 10.6.8 Snow Leopard.


Right-click CentOS-6.9-x86_64-minimal.torrent and save it to the project directory.

Start the μTorrent (Version 1.8.1 (28758)) application, and use it to open the CentOS-6.9-x86_64-minimal.torrent file.

The Add New Torrent dialogue box provides a list of the contents of the torrent:

- 0_README.txt
- CentOS-6.9-x86_64-minimal.iso
- README.txt
- md5sums.txt
- md5sums.txt.asc
- sha1sums.txt
- sha1sums.txt.asc
- sha256sums.txt
- sha256sums.txt.asc

Click OK to begin torrenting.

The resulting directory CentOS-6.9-x86_64-minimal is downloaded to my Downloads directory. Move it to the project directory centos_minimal_stick.

aineko:centos_minimal_stick stjohnpiano$ ls -1

0_README.txt
CentOS-6.9-x86_64-minimal
CentOS-6.9-x86_64-minimal.torrent

aineko:centos_minimal_stick stjohnpiano$ ls -1 CentOS-6.9-x86_64-minimal

0_README.txt
CentOS-6.9-x86_64-minimal.iso
README.txt
md5sums.txt
md5sums.txt.asc
sha1sums.txt
sha1sums.txt.asc
sha256sums.txt
sha256sums.txt.asc


Let's check file size.

aineko:centos_minimal_stick stjohnpiano$ cd CentOS-6.9-x86_64-minimal


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ du -h CentOS-6.9-x86_64-minimal.iso

408M CentOS-6.9-x86_64-minimal.iso

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ ls -lh CentOS-6.9-x86_64-minimal.iso

-rw-r--r-- 1 stjohnpiano staff 408M Dec 18 11:13 CentOS-6.9-x86_64-minimal.iso


So CentOS-6.9-x86_64-minimal.iso is 408 MB.

Right-click CentOS-6.9-x86_64-minimal.iso and choose Get Info:
427.8 MB on disk (427,819,008 bytes)

Why the discrepancy?


Google "mac size on disk vs du".


Excerpt from:
apple.stackexchange.com/questions/147885/why-large-size-calculation-difference-mac-finder-vs-du

Q:

Why large size calculation difference: Mac Finder vs du?

I have just noticed that for some of my directories on an external disk there is a huge difference in calculated size depending on whether I use the GUI Finder or
du
(or rather
du -h
). Using Finder on this directory I get 145 GB, whereas
du
gives me 135 GB. That is a difference of 10 GB! Checking another directory I (on my local machine) I get 41 vs 43,7. So there seems to be almost a 10% difference here. Can anyone explain this?

asked Oct 1 '14 at 8:44
Nick The Swede


A:

I'm not entirely sure but 145GB is exactly [link] 135 GiB so I think Finder gives result with decimal prefixes while
du
uses the binary ones.
See this article [link]

answered Oct 1 '14 at 13:57
Rnhmjoj



Excerpt from:
blog.codinghorror.com/gigabyte-decimal-vs-binary
Author: Jeff Atwood
Published: 10 Sep 2007
Title: Gigabyte: Decimal vs. Binary

Everyone who has ever purchased a hard drive finds out the hard way that there are two ways to define a gigabyte.

When you buy a "500 Gigabyte" hard drive, the vendor defines it using the decimal powers of ten definition of the "Giga" prefix.

500 * 10^9 bytes = 500,000,000,000 = 500 Gigabytes

But the operating system determines the size of the drive using the computer's binary powers of two definition of the "Giga" prefix:

465 * 2^30 bytes = 499,289,948,160 = 465 Gigabytes



The binary definition of a megabyte has a specific name: Mebibyte. Its abbreviation is MiB instead of MB.

I'll use Wolfram Alpha to convert the earlier output of
du
(408M for CentOS-6.9-x86_64-minimal.iso), which I'll treat as being in mebibytes, into decimal megabytes.

www.wolframalpha.com/input/?i=408MiB+to+MB

Result: 427.8 MB (megabytes)


This fits with the hypothesis that the Mac GUI reports file sizes in decimal (e.g. megabytes) and the FreeBSD tools underneath it report file sizes in binary (e.g. mebibytes). They both use the same unit abbreviations (e.g. MB).


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ gpg --version

gpg (GnuPG) 1.4.21
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ wget --version

GNU Wget 1.17.1 built on darwin10.8.0.

+digest -gpgme +https +ipv6 +iri +large-file -metalink +nls +ntlm
+opie -psl +ssl/gnutls

Wgetrc:
/opt/local/etc/wgetrc (system)
Locale:
/opt/local/share/locale
Compile:
/usr/bin/gcc-4.2 -DHAVE_CONFIG_H
-DSYSTEM_WGETRC="/opt/local/etc/wgetrc"
-DLOCALEDIR="/opt/local/share/locale" -I. -I../lib -I../lib
-I/opt/local/include -I/opt/local/include -I/opt/local/include
-I/opt/local/include/p11-kit-1 -I/opt/local/include
-DHAVE_LIBGNUTLS -I/opt/local/include -DNDEBUG -pipe -Os -arch
x86_64
Link:
/usr/bin/gcc-4.2 -I/opt/local/include -I/opt/local/include
-I/opt/local/include/p11-kit-1 -I/opt/local/include
-DHAVE_LIBGNUTLS -I/opt/local/include -DNDEBUG -pipe -Os -arch
x86_64 -L/opt/local/lib -Wl,-headerpad_max_install_names -arch
x86_64 -liconv -lintl -Wl,-framework -Wl,CoreFoundation
-L/opt/local/lib -lpcre -lnettle -L/opt/local/lib -lgnutls
-L/opt/local/lib -lz -lidn ftp-opie.o gnutls.o http-ntlm.o
../lib/libgnu.a

Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Please send bug reports and questions to <bug-wget@gnu.org>.


Let's download a copy of the public key.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

--2017-12-18 13:01:01-- http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
Resolving mirror.centos.org (mirror.centos.org)... 93.113.36.66, 2a00:1768:1001:48::10
Connecting to mirror.centos.org (mirror.centos.org)|93.113.36.66|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1706 (1.7K)
Saving to: 'RPM-GPG-KEY-CentOS-6'

RPM-GPG-KEY-CentOS- 100%[===================>] 1.67K --.-KB/s in 0s

2017-12-18 13:01:01 (77.5 MB/s) - 'RPM-GPG-KEY-CentOS-6' saved [1706/1706]


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ cat RPM-GPG-KEY-CentOS-6

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)

mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW
NyPBZRpM2R+Rg5eVqlborp7TmktBP/sSsxc8eJ+3P2aQWSWc5ol74Y0OznJUCrBr
bIdypJllsD9Fe+h7gLBXTh3vdBEWr2lR+xA+Oou8UlO2gFbVFQqMafUgU1s0vqaE
/hHH0TzwD0/tJ6eqIbHwVR/Bu6kHFK4PwePovhfvyYD9Y+C0vOYd5Ict2vbLHz1f
QBDZObv4M6KN3j7nzme47hKtdMd+LwFqxM5cXfM6b5doDulWPmuGV78VoX6OR7el
x1tlfpuiFeuXYnImm5nTawArcQ1UkXUSYcTUKShJebRDLR3BycxR39Q9jtbOQ29R
FumHginovEhdUcinRr22eRXgcmzpR00zFIWoFCwHh/OCtG14nFhefuZ8Z80qbVhW
2J9+/O4tksv9HtQBmQNOK5S8C4HNF2M8AfOWNTr8esFSDc0YA5/cxzdfOOtWam/w
lBpNcUUSSgddRsBwijPuWhVA3NmA/uQlJtAo4Ji5vo8cj5MTPG3+U+rfNqRxu1Yc
ioXRo4LzggPscaTZX6V24n0fzw0J2k7TT4sX007k+7YXwEMqmHpcMYbDNzdCzUer
Zilh5hihJwvGfdi234W3GofttoO+jaAZjic7a3p6cO1ICMgfVqrbZCUQVQARAQAB
tEZDZW50T1MtNiBLZXkgKENlbnRPUyA2IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
Y2VudG9zLTYta2V5QGNlbnRvcy5vcmc+iQI8BBMBAgAmBQJOD9OjAhsDBQkSzAMA
BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQCUb8osEFud6ajRAAnb6d+w6Y/v/d
MSy7UEy4rNquArix8xhqBwwjoGXpa37OqTvvcJrftZ1XgtzmTbkqXc+9EFch0C+w
ST10f+H0SPTUGuPwqLkg27snUkDAv1B8laub+l2L9erzCaRriH8MnFyxt5v1rqWA
mVlRymzgXK+EQDr+XOgMm1CvxVY3OwdjdoHNox4TdVQWlZl83xdLXBxkd5IRciNm
sg5fJAzAMeg8YsoDee3m4khg9gEm+/Rj5io8Gfk0nhQpgGGeS1HEXl5jzTb44zQW
qudkfcLEdUMOECbu7IC5Z1wrcj559qcp9C94IwQQO+LxLwg4kHffvZjCaOXDRiya
h8KGsEDuiqwjU9HgGq9fa0Ceo3OyUazUi+WnOxBLVIQ8cUZJJ2Ia5PDnEsz59kCp
JmBZaYPxUEteMtG3yDTa8c8jUnJtMPpkwpSkeMBeNr/rEH4YcBoxuFjppHzQpJ7G
hZRbOfY8w97TgJbfDElwTX0/xX9ypsmBezgGoOvOkzP9iCy9YUBc9q/SNnflRWPO
sMVrjec0vc6ffthu2xBdigBXhL7x2bphWzTXf2T067k+JOdoh5EGney6LhQzcp8m
YCTENStCR+L/5XwrvNgRBnoXe4e0ZHet1CcCuBCBvSmsPHp5ml21ahsephnHx+rl
JNGtzulnNP07RyfzQcpCNFH7W4lXzqM=
=jrWY
-----END PGP PUBLIC KEY BLOCK-----

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ gpg --quiet --with-fingerprint RPM-GPG-KEY-CentOS-6

pub 4096R/C105B9DE 2011-07-03 CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
Key fingerprint = C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE


On www.centos.org/keys, I find:

CentOS-6 Signing Key
pub 4096R/C105B9DE 2011-07-03 CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
Key fingerprint = C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE


[fingerprint of downloaded key]
aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s1="C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE"


[fingerprint shown on web page https://www.centos.org/keys]
aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s2="C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE"


Check that these fingerprints are identical.
aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ [[ "$s1" = "$s2" ]] && echo equal || echo not-equal

equal



I'm going to use a temporary keyring to check the signatures.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ mkdir keyring_tmp


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ gpg --no-default-keyring --keyring pubring.gpg --homedir keyring_tmp --import RPM-GPG-KEY-CentOS-6

gpg: WARNING: unsafe permissions on homedir `keyring_tmp'
gpg: keyring `keyring_tmp/secring.gpg' created
gpg: keyring `keyring_tmp/pubring.gpg' created
gpg: keyring_tmp/trustdb.gpg: trustdb created
gpg: key C105B9DE: public key "CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ gpg --no-default-keyring --keyring pubring.gpg --homedir keyring_tmp --verify md5sums.txt.asc

gpg: WARNING: unsafe permissions on homedir `keyring_tmp'
gpg: Signature made Tue Apr 4 19:56:16 2017 GMT using RSA key ID C105B9DE
gpg: Good signature from "CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE
gpg: WARNING: not a detached signature; file 'md5sums.txt' was NOT verified!



Key line:
gpg: Good signature from "CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>"

This means that gpg thinks that the signature is mathematically valid.


Let's select the hash from md5sums.txt.asc corresponding to the CentOS-6.9-x86_64-minimal.iso:


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ cat md5sums.txt.asc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

2e227fa14c8a9791293b6525289c7dad CentOS-6.9-x86_64-bin-DVD1.iso
e2152e0eeb082a92c0f925e7a99c872c CentOS-6.9-x86_64-bin-DVD2.iso
a807045c5f8037686f3375bd7b463753 CentOS-6.9-x86_64-LiveDVD.iso
af4a1640c0c6f348c6c41f1ea9e192a2 CentOS-6.9-x86_64-minimal.iso
cdab6b8142cb03e5f02102879d11ef44 CentOS-6.9-x86_64-netinstall.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iQIcBAEBAgAGBQJY4/pgAAoJEAlG/KLBBbneysEQAJNWGG/VCseW1fjY/VDQmRgi
/GTIJZx1hg3Wegj3fcrZBQMJKvZglRf6no++Z+xyRchCJmWqur3/ZY2SiXkzEror
ZLbIdm++Rdi7upfBsobRaS7yEc0JHVZaUi9kYLnMBH5cYMTNZSH9y4fjvQ3ADkot
gTfGtvSn46YgKyzZfIN5x2KvPOHiJEWgRaiy0tBpBCIQTXnIhtCb7Hk1NAa6FeIr
4PfIvTTOGNPzbnkBfVZm1Ifwc2fvymgNpdCRi7DHg2bNFcKsAUw/j5oAZlPMqgQM
H7XOwTuH1KLYiYhbQPNsQWiyff8aAhsJ0HYyDPcGF7bDfj+/plVCxlciOXEBJPMq
8V+539+zEgQNSdM1akUwmNfkA04hdZqyDxPHdx6BcaHQYVDhMmMOho8esgV9AM0G
hElGg4845jO+HjFKba6d+8pbQmX1SZ/nmIGDDeBjzxyN+pGYlkNZ0Yc7aT5mxuS6
MA07tihun4Fye2OrimXXALSQVPt/830Pq5ZyNfNTdKBQfJVgP6hU0IILqBOVPkvF
bsgCIYl238TsSLmPIW7zC3LaTXl21mfoHWWYD/bH9cVwML5ylQGP1Kza5LMnXmhy
mAFtj/zMA13taU0m4s2uAP7Eu3cfL+c5M8bPuVrA9aAxXaUGBh42og19lpv9DOaT
5HSjO5fjJz4hw8IDTMop
=ml4M
-----END PGP SIGNATURE-----



Key line:
af4a1640c0c6f348c6c41f1ea9e192a2 CentOS-6.9-x86_64-minimal.iso


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s1="af4a1640c0c6f348c6c41f1ea9e192a2"


Now hash the iso image file:

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ md5 CentOS-6.9-x86_64-minimal.iso MD5

(CentOS-6.9-x86_64-minimal.iso) = af4a1640c0c6f348c6c41f1ea9e192a2

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s2="af4a1640c0c6f348c6c41f1ea9e192a2"


Check that the hash values are identical.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ [[ "$s1" = "$s2" ]] && echo equal || echo not-equal

equal



The signed hash is identical to the calculated hash, which means that the .iso file has not been altered since the hash was signed.


For completeness, I will also check the sha1 and sha256 signatures and values.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ gpg --no-default-keyring --keyring pubring.gpg --homedir keyring_tmp --verify sha1sums.txt.asc

gpg: WARNING: unsafe permissions on homedir `keyring_tmp'
gpg: Signature made Tue Apr 4 19:56:18 2017 GMT using RSA key ID C105B9DE
gpg: Good signature from "CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE
gpg: WARNING: not a detached signature; file 'sha1sums.txt' was NOT verified!

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ cat sha1sums.txt.asc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

09c68654986feee54dcc6cad72771b7fe4be9703 CentOS-6.9-x86_64-bin-DVD1.iso
1415937993b615956c8c4239544366e0674bf042 CentOS-6.9-x86_64-bin-DVD2.iso
21531d5d403bb9dbb3bd35efbf9fc6dff8c02bfd CentOS-6.9-x86_64-LiveDVD.iso
b23d4d996d2cb5b370120588d5ea18a9cfba7881 CentOS-6.9-x86_64-minimal.iso
32f9f74fd27ec1ff7cc4f39a80d0dae34d9ec18b CentOS-6.9-x86_64-netinstall.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iQIcBAEBAgAGBQJY4/piAAoJEAlG/KLBBbnei3gP/RCx/jhqw8MbhidVlBeWOKU5
CiuwLDiK371wxULLtixsmkSqSSW+QDX/+diefQTJezRhDS4r/b143cWYHqj7X/m/
gZ1b9mfzvRgWdWMejYUCxHUhENFh8MkS8CPOCnxoexASU25im75UEXFTH6XdYGbv
9H3iWOdhiUcjCnvwqKF53xJOSTMnItHTinj03HhgAohuQjS3AFRwSPs2+7QFAMSg
gtIFDcnqF0/kSZKWOEmFhuGSm697QUJWWr87aGejV9V5Xv/+FWcjSW/oyPyeUKcF
uwqMWXYYGW5PJTz1nyFYdXk34Q17XsMVho360P43JRx9Qmm9LTpQ5Q6CMJbvS9NH
mWgwrHMMGWhthvmogXJ3CNsatzucPeA3d3DmfH94D47SqhbryXI0FJJ2+UdO+dlM
6jmiFafMD3D9Nvn3LcZrja7tdc1HPIXayoTWBJe0z4ZzOzcuaTMyMLDTm01Lak0C
ILPZWw7xhp6z/oKacaYog+/NF3S22YyDzUSmddLay19m05pYIjz0rNyST/9RD7X6
qxIMoI0Aye0o6QZV1fw1qjfPfz2ueplJay1WJaHB9k5WXH9aIsT5K1/5heCVYNrN
rVEFc4TS5hUCOSXx2keruyI/iT8YePqpRS3YgGLphfQXHZoTts19wtxH2vByYSPr
zr+dwXEe4FpmwRF/aXHL
=jKV2
-----END PGP SIGNATURE-----



Let's select the hash from sha1sums.txt.asc corresponding to the CentOS-6.9-x86_64-minimal.iso:

Key line:
b23d4d996d2cb5b370120588d5ea18a9cfba7881 CentOS-6.9-x86_64-minimal.iso


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s1="b23d4d996d2cb5b370120588d5ea18a9cfba7881"



Now hash the iso image file:

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ shasum CentOS-6.9-x86_64-minimal.iso

b23d4d996d2cb5b370120588d5ea18a9cfba7881 CentOS-6.9-x86_64-minimal.iso

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s2="b23d4d996d2cb5b370120588d5ea18a9cfba7881"


Check that the hash values are identical.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ [[ "$s1" = "$s2" ]] && echo equal || echo not-equal

equal



sha1 hash confirmed.


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ gpg --no-default-keyring --keyring pubring.gpg --homedir keyring_tmp --verify sha256sums.txt.asc

gpg: WARNING: unsafe permissions on homedir `keyring_tmp'
gpg: Signature made Tue Apr 4 19:56:21 2017 GMT using RSA key ID C105B9DE
gpg: Good signature from "CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: C1DA C52D 1664 E8A4 386D BA43 0946 FCA2 C105 B9DE
gpg: WARNING: not a detached signature; file 'sha256sums.txt' was NOT verified!

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ cat sha256sums.txt.asc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

d27cf37a40509c17ad70f37bc743f038c1feba00476fe6b69682aa424c399ea6 CentOS-6.9-x86_64-bin-DVD1.iso
631b8640460f46a8139a6a7cbbac5f3594d08c32945449b6bbd65234929ce7a4 CentOS-6.9-x86_64-bin-DVD2.iso
422af57b493b8af49d485885a730c5a1d955f803fac85aa51311c393168b9080 CentOS-6.9-x86_64-minimal.iso
6b2cbec908708476389b143841a8e73462506de0744bda8b4192d3655d5bb8d2 CentOS-6.9-x86_64-netinstall.iso
ae56f677786673ad476477ed2df84ce80cf5f9b90a44e25146e69ef3cfd02602 CentOS-6.9-x86_64-LiveDVD.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iQIcBAEBAgAGBQJY4/plAAoJEAlG/KLBBbnepEQQAJfuNfrgBNRZzPGrXoem+CV1
x/ztLlpDZ1ZxczGjbvMEpF3CXUYqUmQPB4xI0W8O0zRdfMYX6ic4LjV4k7DCHcas
gQEEOYsUu5IZkQhiXyJAbo2Hnp4NR/JR6f25DA2nzaa8xIrhMw4jfyOat8Htk2Wi
qNSjAKXUHiIdeuQsPtXQpOBONiS/2Ytc+Kx4hBQAO6s8G6gdfVE6vVY+Xl8Kdyk7
x0mYtm5cDiwd7PX+pJS/DaeVbnO0UstgmB/66hjSgEN2m9siLQuDPhyGg1PZyFx9
xwbC0UW39fNE0C833aLHOy8mojLuAvO5QmDEKBztdCKwOQR98vqxti2TI1z+/6fd
BKq8XM0K8ZsPdIZqUu9z2XnA+DFz7sVljjUyuuWEMpz0eyAfzskod2K/ujkSaLmF
97wq10fREB+TOaWWzndJ8ydl95h5WRmGMFvHfvJxhdVMyKZEYzofazpb0qyUERcz
4GbW3YCSTNOO6SaKBywqPVlp4m7Mv1CAFQRjBbJkYx7husiMnXxzFYzW9/0jDVT1
uB183j+pucE5zlpZTGaG75ZN1c0izFperqbdHwfiZEGma41vUvAIDUhy+CCZTMgB
7FEOsjRToCm02HChW8fArUn0j5oNdAb8hZiJugOFQKEbdb3pJ9//rOLgVadCnUBl
XIikxN22P8EkKTF2PKoR
=QFrh
-----END PGP SIGNATURE-----



Let's select the hash from sha256sums.txt.asc corresponding to the CentOS-6.9-x86_64-minimal.iso:

Key line:
422af57b493b8af49d485885a730c5a1d955f803fac85aa51311c393168b9080 CentOS-6.9-x86_64-minimal.iso


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s1="422af57b493b8af49d485885a730c5a1d955f803fac85aa51311c393168b9080"


Now hash the iso image file:

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ shasum -a 256 CentOS-6.9-x86_64-minimal.iso

422af57b493b8af49d485885a730c5a1d955f803fac85aa51311c393168b9080 CentOS-6.9-x86_64-minimal.iso

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ s2="422af57b493b8af49d485885a730c5a1d955f803fac85aa51311c393168b9080"


Check that the hash values are identical.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ [[ "$s1" = "$s2" ]] && echo equal || echo not-equal

equal



sha256 hash confirmed.


Next: Prepare the USB memory stick and write the minimal iso image to it.

I have an HP 16 GB stick.


I'll follow the recipe I used to make a Centos 6.9 bootable live USB memory stick, updated a little.


WARNING: Perform your backups now in order to avoid catastrophic data loss from making a mistake when using Disk Utility or when running the
dd
command.



Recipe for writing an OS iso image file to a memory stick:
- Format the USB memory stick as a single FAT32 partition. Partition scheme = Master Boot Record. On Mac OS X, use Disk Utility to do this.
- Remove the memory stick.
- In a terminal, change directory to the directory containing the OS image (e.g. CentOS-6.9-x86_64-minimal.iso)
- Run this command: $ df -h
- Reinsert the memory stick.
- Run this command: $ df -h
- In the output, find the item name that wasn't listed in the output from the first time that
df -h
was run. Example: /dev/disk1s1
- Remove the /dev/ prefix to get the device name. Example: /dev/disk1s1 becomes disk1s1
- Run this command: $ sudo diskutil unmount /dev/[device_name]
-- Example: $ sudo diskutil unmount /dev/disk1s1
- Get raw device name by deleting the partition name e.g. 's1' and adding 'r' to the front. Example: disk1s1 becomes rdisk1
- WARNING: If you make a mistake in the next step you could wipe your operating system.
- Run this command: $ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/[raw_device_name]
-- Example: $ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/rdisk1
-- This should take a few minutes.
- Remove the memory stick.



Insert memory stick. It mounts automatically and an icon appears on the Desktop.

Open Disk Utility (Version 11.5.2 (298.4)).

In Disk Utility, select the memory stick (it shows up as "15.96 GB hp v150w Media").

Click Erase tab.
- Format = MS-DOS (FAT)
- Name = CENTOS6_9_M
Click Erase.

Pop-up dialogue box opens with this message:
Are you sure you want to erase the disk "hp v150w Media"?
Erasing a disk deletes all data on all its partitions.
This disk is unformatted.

and two buttons: Cancel and Erase.
Click Erase.

Click Partition tab. Under Volume Scheme, choose 1 Partition. Click Options and choose Master Boot Record partition scheme.
Under Volume Information, set these values:
- Name = CENTOS6_9_M
- Format = MS-DOS (FAT)
- Size = 15.96
Click Apply.

Pop-up dialogue box opens with this message:
Are you sure you want to partition the disk "hp v150w Media"?
Partitioning this disk will delete all data on this disk.
This partition will be erased: "CENTOS6_9_M"
This partition will be added: "CENTOS6_9_M"

and two buttons: Cancel and Partition.
Click Partition.

Quit Disk Utility.

Eject CENTOS6_9_M disk (right-click icon on Desktop and choose Eject).

Remove the CENTOS6_9_M memory stick.


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ df -h

Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 117Gi 107Gi 10Gi 92% / devfs 109Ki 109Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk0s3 32Gi 14Gi 18Gi 45% /Volumes/Untitled



Reinsert the CENTOS6_9_L memory stick. It mounts automatically and an icon appears on the Desktop.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ df -h

Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 117Gi 107Gi 10Gi 92% / devfs 110Ki 110Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk0s3 32Gi 14Gi 18Gi 45% /Volumes/Untitled /dev/disk1s1 15Gi 768Ki 15Gi 1% /Volumes/CENTOS6_9_M


Find the device name that wasn't listed before:
/dev/disk1s1


Unmount the disk:
aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ diskutil unmount /dev/disk1s1

Volume CENTOS6_9_M on disk1s1 unmounted


Get raw device name by deleting the partition name e.g. 's1' and adding 'r' to the front. In this case,
disk1s1
becomes
rdisk1



WARNING: If you make a mistake in the next step you could wipe your operating system.



aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/rdisk1

Password:
408+0 records in
408+0 records out
427819008 bytes transferred in 54.177718 secs (7896586 bytes/sec)



54 seconds / (60 seconds / minute) = 0.9 minutes


Remove and re-insert the memory stick.

Disk is auto-mounted as CentOS_6.9_Final.

Eject disk.

Remove memory stick.


Let's move from Aineko to Kalkin.

Insert memory stick into one of Kalkin's USB ports.

Press the power button to boot Kalkin.

After some startup messages, Kalkin arrives at a screen showing these options:

Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System


The option
Install or upgrade an existing system
was highlighted i.e. selected.

After 60 seconds the system booted, presumably using the first option.


Kalkin arrives at this screen:

Welcome to CentOS for x86_64

Choose a Language
What language would you like to use during the installation process?
[...]
English
[...]
OK

<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen


English
is highlighted.

Press Space. Nothing happens.

Press Enter.


Screen:

Keyboard Type
What type of keyboard do you have?
[...]
us
[...]
OK, Back


us
is highlighted.

Press Enter.


Screen:

Installation Method
What type of media contains the installation image?
- Local CD/DVD
- Hard drive
- NFS directory
- URL
OK, Back


Local CD/DVD
is highlighted.

I think that in this case a USB stick might fall under the CD/DVD category.

Press Enter.


Screen:

Disc Not Found
The CentOS disc was not found in any of your CDROM drives. Please insert the CentOS disc and press OK to retry.
OK, Back


OK
is highlighted.

Press Right Arrow. Now
Back
is highlighted.

Press Enter.


Screen:

Installation Method
What type of media contains the installation image?
- Local CD/DVD
- Hard drive
- NFS directory
- URL
OK, Back


Local CD/DVD
is highlighted.

Press Down Arrow. Now
Hard drive
is highlighted.

Press Enter.


Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
Directory holding image: ________________
OK, Back


/dev/sda1
is highlighted.

I think that
/dev/sda1
is the 2 TB hard drive within Kalkin.

I want to install the operating system from the memory stick to the hard drive.

Press F2.


Screen:

Driver Disk Source
You have multiple devices which could serve as sources for a driver disk.
Which would you like to use?
- sda
- sdb
- sdc
- sdd
- sdf
- sde
- sdg
- sr0
OK, Back


sda
is highlighted.

Press Down Arrow until
sr0
is highlighted. I don't know what it is, but let's see what happens.


Screen:

Insert Driver Disk
Insert your driver disk into /dev/sr0
and press "OK" to continue.
OK, Back


OK
is highlighted.

Press Enter.


Screen:

Error
Failed to mount driver disk.
OK


OK
is highlighted.

Press Enter.


Screen:

Insert Driver Disk
Insert your driver disk into /dev/sr0
and press "OK" to continue.
OK, Back


OK
is highlighted.


I'll reboot and try a different option at the beginning.


Press and hold the power button to turn Kalkin off.

Press the power button to boot Kalkin.


Screen:

Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System


The option
Install or upgrade an existing system
is highlighted.

Press Down Arrow three times. Now
Boot from local drive
is selected. The "automatic boot" message disappeared when I pressed Down Arrow the first time.

Press Enter.


Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

Initializing and establishing link...



Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

CLIENT MAC ADDR: 08 2E 5F 25 D7 26 GUID: 80F50C7C F843 E111 A1D0 082E5F25D76
DHCP../



At some point I connected Kalkin to the local network via an Ethernet cable in order to check that the Ethernet connection worked (didn't note down exactly when I did so). These lines:
CLIENT MAC ADDR: 08 2E 5F 25 D7 26 GUID: 80F50C7C F843 E111 A1D0 082E5F25D76
DHCP../

are probably due to this connection.


Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

CLIENT MAC ADDR: 08 2E 5F 25 D7 26 GUID: 80F50C7C F843 E111 A1D0 082E5F25D76
PXE-E53: No boot filename received

PXE-M0F: Exiting Intel Boot Agent.



Screen:

Non-System disk or disk error
replace and strike any key when ready


Press Enter.


Screen:

Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System


The option
Install or upgrade an existing system
is highlighted.



I'll reboot and go into the BIOS at the beginning.
Related article: Exploring the BIOS boot options on Kalkin.


Press and hold the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- hp v150w 1100
-- HDS722020ALA330 RSD HUA
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


EFI Boot Sources
is highlighted.

Press Down Arrow until
hp v150w 1100
is highlighted.

Press Enter.


Screen:

Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System


The option
Install or upgrade an existing system
is highlighted.

Press Enter.


Screen:

Choose a Language
What language would you like to use during the installation process?
[...]
English
[...]
OK


English
is highlighted.

Press Enter.


Screen:

Keyboard Type
What type of keyboard do you have?
[...]
us
[...]
OK, Back


us
is highlighted.

Press Enter.


Screen:

Installation Method
What type of media contains the installation image?
- Local CD/DVD
- Hard drive
- NFS directory
- URL
OK, Back


Local CD/DVD
is highlighted.

In the BIOS Boot Menu,
hp v150w 1100
was listed under the
Hard Drive
section, before the actual hard drive
HDS722020ALA330 RSD HUA
. Perhaps some admin information has been changed somewhere so that Kalkin will see the HP memory stick first when told to boot from the hard drive.

Press Down Arrow. Now
Hard drive
is highlighted.

Press Enter.


Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
Directory holding image: ________________
OK, Back


/dev/sda1
is highlighted.

Press Enter.


Something appears to be working.


Screen:

CentOS 6
Community ENTerprise Operating System
Back, Next


Next is a button. Back is a greyed-out button.

This is a GUI screen, not a terminal screen.

Click Next.


Screen:

What type of devices will your installation involve?
- Basic Storage Devices: Installs or upgrades to typical types of storage devices. If you're not sure which option is right for you, this is probably it.
- Specialized Storage Devices: Installs or upgrades to enterprise devices such as Storage Area Networks (SANs). This option will allow you to add FCoEes / iSCSI / zFCP disks and to filter out devices the installer should ignore.
Back, Next


Basic Storage Devices is selected.

Click Next.


Screen:

Warning
Disk sdg contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sdg.
OK
Back, Next


Click OK. Not sure what disk sdg is.


Screen:

Please name this computer. The hostname identifies the computer on a network.
Hostname: [text field]
Configure Network
Back, Next


Type "kalkin" into the text field.

Click Next.


Screen:

Please select the nearest city in your time zone:
[Map of the world with dots for cities. New York is named.]
Selected city: New York, America (Eastern (most areas))
[Drop-down list. America/New York is selected.]
[checkbox: ticked] System clock uses UTC
Back, Next


Click the drop-down list and select Europe/London. Pressing Page Down to move through the list is faster than scrolling.

Click Next.


Screen:

The root account is used for administering the system. Enter a password for the root user.
Route Password: [text field]
Confirm: [text field]
Back, Next


Type in a password for the root user into both text fields.

Click Next.


Screen:

Which type of installation would you like?
- Use All Space: Removes all partitions on the selected device(s). This includes partitions created by other operating systems. Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Replace Existing Linux System(s): Removes only Linux partition (created from a previous Linux installation). This does not remove other partitions you may have on your storage device(s) (such as VFAT or FAT32). Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Shrink Current System: Shrinks existing partitions to create free space for the default layout.
- Use Free Space: Retains your current data and partitions and uses only the unpartitioned space on the selected device(s), assuming you have enough free space available.
- Creed Custom Layout: Manually create your own custom layout on the selected device(s) using our partitioning tool.
[checkbox: not ticked] Encrypt system
[checkbox: not ticked] Review and modify partitioning layout
Back, Next


Replace Existing Linux System(s) is selected.

Click Use All Space.

Click Next.


Screen:

Writing storage configuration to disk
The partitioning options you have selected will now be written to disk. Any data on deleted or reformatted partitions will be lost.
Go back, Write changes to disk


Click Write changes to disk.


Screen:

Formatting
Creating ext4 filesystem on /dev/sda1
[progress bar]
Back, Next



[Various other messages are displayed, but not recorded here]


Screen:

Missing ISO 9660 Image
The installer has tried to mount image #1, but cannot find it on the hard drive.
Please copy this image to the driver and click Retry. Click Exit to abort the installation.
Exit, Retry
Back, Next



Google "centos missing iso 9660 image".


First result:
www.centos.org/forums/viewtopic.php?t=1001

[SOLVED] USB: The installer has tried to mount image #1, but cannot find it on the hard drive.
by willroberts 2011/07/20 22:55:16

The Problem:

I am installing CentOS 6 on my server, which has no optical drives. I used UNetBootIn to create a USB installation disk from the CentOS 6 DVD (DVD1). As soon as I finish telling GRUB where to put the bootloader, the installation shows an error titled "Missing ISO 9660 Image". The message is:

The installer has tried to mount image #1, but cannot find it on the hard drive.
Please copy this image to the drive and click Retry.
Click Exit to abort the installation.


So I can't proceed any further in the GUI. This happens when creating the image from multiple sources, not just UNetBootIn.

The Solution

tty2 is an active root shell - press Ctrl-Alt-F2 to access it. Use this shell to mount another filesystem (flash drive) containing the CentOS DVD ISO.

mount /dev/sdc1 /mnt/foldername


The code above assumes your drive is registered as /dev/sdc1. This may not be the case. Use `fdisk -l` to identify your drive and its partitions. Assuming you are using SATA drives, search for 'sd' in your running processes to find the anaconda info:

ps -ef | grep sd


You will see a line similar to this one:

/usr/bin/python /usr/bin/anaconda --stage2 hd:/dev/sda1://images/install.img --graphical --selinux --lang en_US_UTF-8 --keymap us [b][u]--repo hd:/dev/sda1:/[/u][/b]


This is where the problem is. The system is looking in /dev/sda1 (or /mnt/isodir when mounted) for any ISO file containing the CentOS installation data. Copy your CentOS ISO to this directory (using the folder name mounted previously):

cp /mnt/foldername/centos.iso /mnt/isodir/centos.iso


Then go back to the GUI (Ctrl-Alt-F6), hit Retry, and finish the installation!



I'll follow these steps and see if they work.

Press Ctrl-Alt-F2.

[anaconda root@localhost /]#


This screen is black with white text and appears to be a terminal, presumably tty2.

[anaconda root@localhost /]# fdisk -l


Disk /dev/loop0: 146 MB, 146558976 bytes
255 heads, 63 sectors/track, 17 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0c30c34e

Disk /dev/sda: 16.0 GB, 15955132416 bytes
64 heads, 32 sectors/track, 15216 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee137

Device Boot Start End Blocks Id System /dev/sda1 * 2 501 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 502 15216 15068160 8e Linux LVM Partition 2 does not end on cylinder boundary.


Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg_kalkin-lv_root: 13.8 GB, 13832814592 bytes
255 heads, 63 sectors/track, 1681 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg_kalkin-lv_swap: 1593 MB, 1593835520 bytes
255 heads, 63 sectors/track, 193 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000



Disk
/dev/sda
is 16.0 GB, which is the size of the memory stick.

I don't know which partition I should choose. I'll try with partition 1 on
/dev/sda
.

[anaconda root@localhost /]# ls -1 /mnt

isodir
runtime
source
sysimage


I'll call the mount directory "test1".

Mount this partition:
[anaconda root@localhost /]# mount /dev/sda1 /mnt/test1

mount: mount point /mnt/test1 does not exist


I forgot that it's necessary to create a directory first before using it as a mount point.

[anaconda root@localhost /]# mkdir /mnt/test1


[anaconda root@localhost /]# ls -1 /mnt

isodir
runtime
source
sysimage
test1

[anaconda root@localhost /]# mount /dev/sda1 /mnt/test1


[anaconda root@localhost /]# ls -1 /mnt/test1

lost+found

[anaconda root@localhost /]# ls -1 /mnt/test1/lost+found



Hm.

Ok. Let's dismount
/dev/sda1
and try with partition 2.

[anaconda root@localhost /]# umount /dev/sda1


[anaconda root@localhost /]# ls -1 /mnt/test1


[anaconda root@localhost /]# mount /dev/sda2 /mnt/test1

mount: unknown filesystem type 'LVM2_member'



Hm.

Let's try without specifying a partition.

[anaconda root@localhost /]# mount /dev/sda /mnt/test1

mount: you must specify the filesystem type



Let's leave finding the .iso for now.

[anaconda root@localhost /]# ps -ef | grep sd

root 893 148 0 16:14 tty1 00:00:04 /usr/bin/python /usr/bin/anaconda --stage2 hd:/dev/sda1://images/install.img --graphical --selinux --lang en_US.UTF-8 --keymap us --repo hd:/dev/sda1:/ root 1077 893 0 16:14 tty1 00:00:00 /usr/bin/python /usr/bin/anaconda --stage2 hd:/dev/sda1://images/install.img --graphical --selinux --lang en_US.UTF-8 --keymap us --repo hd:/dev/sda1:/ root 1676 2 0 16:52 ? 00:00:00 [jbd2/sda1-8] root 1980 858 0 21:18 tty2 00:00:00 grep sd


Key line from the post: "The system is looking in /dev/sda1 (or /mnt/isodir when mounted) for any ISO file containing the CentOS installation data."

It looks as though on Kalkin the system is also looking in /dev/sda1.

Hm.

[anaconda root@localhost /]# ls -a1 /mnt

.
..
isodir
runtime
source
sysimage
test1

[anaconda root@localhost /]# ls -a1 /mnt/isodir

.
..
lost+found

[anaconda root@localhost /]# ls -a1 /mnt/isodir/lost+found

.
..



I think that /dev/sda1 is already mounted to /mnt/isodir.


Aha. I realise now that I made an incorrect assumption. I interpreted "Use this shell to mount another filesystem (flash drive) containing the CentOS DVD ISO" to mean that there was a way to mount the memory stick so that its entire contents could be treated as "the centos iso file" and copied (normal copy, not using
dd
). Instead, I think willroberts meant that one should copy the centos iso to a second memory stick, and use the tty2 shell (booted from the first memory stick) to access it and copy the iso from it to the location expected by the installation script.

Before proceeding, let's double-check that this iso file does not already exist anywhere on the system.

[anaconda root@localhost /]# find / -type f -name "*.iso"


Hm.

Thinking about it, I directly copied (using
dd
) the iso file to the memory stick. Presumably this iso file contains the various pieces needed for booting and running a shell. I'm unsure about why these pieces, once loaded and running/available in RAM, can't look at the memory stick and copy its contents to an iso file on the hard drive.

This CentOS-6.9-x86_64-minimal.iso was designed to be written to a CD, not a USB memory stick. This might be why this problem has occurred. This particular operation (copying from the memory stick) might not have been constructed or planned for in the installation process.

Note: Perhaps I could use
dd
to copy the contents of the memory stick to an iso file on the hard drive. I'll try this if mounting a second memory stick doesn't work for some reason.

[anaconda root@localhost /]# dd --version

dd (coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Paul Rubin, David MacKenzie, and Stuart Kemp.



Insert a second memory stick (Kingston, 32 GB) into Aineko. Copy the CentOS-6.9-x86_64-minimal.iso onto the stick (normal copy, not using
dd
).

Move back to Kalkin.

[anaconda root@localhost /]# df -h

Filesystem Size Used Avail Use% Mounted on /dev 7.9G 224K 7.9G 1% /dev none 7.9G 141M 7.7G 2% /tmp /dev/loop0 140M 140M 0 100% /mnt/runtime /dev/mapper/vg_kalkin-lv_root 13G 33M 12G 1% /mnt/sysimage /dev/sda1 477M 2.3M 449M 1% /mnt/sysimage/boot /dev 7.9G 224K 7.9G 1% /mnt/sysimage/dev /dev/tmpfs 7.9G 0 7.9G 0% /mnt/sysimage/dev/shm /dev/sda1 477M 2.3M 449M 1% /mnt/isodir



Insert second memory stick into Kalkin.

[anaconda root@localhost /]# df -h

Filesystem Size Used Avail Use% Mounted on /dev 7.9G 224K 7.9G 1% /dev none 7.9G 141M 7.7G 2% /tmp /dev/loop0 140M 140M 0 100% /mnt/runtime /dev/mapper/vg_kalkin-lv_root 13G 33M 12G 1% /mnt/sysimage /dev/sda1 477M 2.3M 449M 1% /mnt/sysimage/boot /dev 7.9G 224K 7.9G 1% /mnt/sysimage/dev /dev/tmpfs 7.9G 0 7.9G 0% /mnt/sysimage/dev/shm /dev/sda1 477M 2.3M 449M 1% /mnt/isodir



Ah. I forgot that it wouldn't necessarily mount automatically. No new name has appeared.

Note: I observe that /dev/sda1 is indeed mounted on /mnt/isodir, the same as in willroberts' post.

I need to find out the device name (on Kalkin's system) of the second memory stick.

I'll try
fdisk -l
and see if it can detect the second memory stick.

[anaconda root@localhost /]# fdisk -l


Disk /dev/loop0: 146 MB, 146558976 bytes
255 heads, 63 sectors/track, 17 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0c30c34e

Disk /dev/sda: 16.0 GB, 15955132416 bytes
64 heads, 32 sectors/track, 15216 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee137

Device Boot Start End Blocks Id System /dev/sda1 * 2 501 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 502 15216 15068160 8e Linux LVM Partition 2 does not end on cylinder boundary.


Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg_kalkin-lv_root: 13.8 GB, 13832814592 bytes
255 heads, 63 sectors/track, 1681 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg_kalkin-lv_swap: 1593 MB, 1593835520 bytes
255 heads, 63 sectors/track, 193 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdh: 31.1 GB, 31051513856 bytes
255 heads, 63 sectors/track, 3775 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xaac1950c

Device Boot Start End Blocks Id System /dev/sdh1 * 1 3776 30323712 c W95 FAT32 (LBA)



This item is new:
Disk /dev/sdh: 31.1 GB, 31051513856 bytes
255 heads, 63 sectors/track, 3775 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xaac1950c

Device Boot Start End Blocks Id System /dev/sdh1 * 1 3776 30323712 c W95 FAT32 (LBA)


It is also the right size (~32 GB).

Its device+partition name is
/dev/sdh1
.


Mount the second memory stick.

[anaconda root@localhost /]# mount /dev/sdh1 /mnt/test1


[anaconda root@localhost /]# ls -1 /mnt/test1

CentOS-6.9-x86_64-minimal.iso

[anaconda root@localhost /]# cp /mnt/test1/CentOS-6.9-x86_64-minimal.iso /mnt/isodir/CentOS-6.9-x86_64-minimal.iso



Press Ctrl-Alt-F6 to go back to the GUI.

Screen:

Missing ISO 9660 Image
The installer has tried to mount image #1, but cannot find it on the hard drive.
Please copy this image to the driver and click Retry. Click Exit to abort the installation.
Exit, Retry
Back, Next


Click Retry.


A large progress bar appears. "Packages completed: 1 of 208".

Presumably the minimal version of Centos contains a total of 208 packages.

[Various installation messages are displayed, but not recorded here]


Installation took about 30 minutes.


Screen:

Congratulations, your CentOS installation is complete.
Please reboot to use the installed system. Note that updates may be available to ensure the proper functioning of your system and installation of these updates is recommended after the reboot.
Back, Reboot


The Back button is greyed out.

Click Reboot.


[Various startup messages are displayed, but not recorded here]

Screen:

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

kalkin login:


It's a terminal.


kalkin login: root
Password:
[root@kalkin ~]#


Note: Use the password chosen earlier.


[root@kalkin ~]# echo "hello world"

hello world


Excellent.


Shut down Kalkin.
[root@kalkin ~]# halt



Remove the two memory sticks.


Disconnect Ethernet cable.


Press the power button to boot Kalkin.



Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

Initializing and establishing link...



Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

PXE-E61: Media test failure, check cable
PXE-M0F: Exiting Intel Boot Agent.



Screen:

Non-System disk or disk error
replace and strike any key when ready




Hm. Evidently the installation failed. However, in all respects it appeared to be a successful one.


I'll take a look in the BIOS.


Press the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


[Various startup messages are displayed, but not recorded here]


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- HDS722020ALA330 RSD HUA
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


The memory stick
hp v150w 1100
no longer appears under
Hard Drive
.

It's presumably trying to boot from the hard drive, but nothing is there for it to boot with.


Press the power button to turn Kalkin off.


Reinsert the primary memory stick. "Primary" meaning the memory stick I originally used (now with Centos installed to it), not the second one that I used to transport the Centos iso image file.


Press the power button to boot Kalkin.


[Various startup messages are displayed, but not recorded here]


Screen:

Press any key to enter the menu

Booting CentOS 6 (2.6.32-696.e16.x86_64) in 3 seconds...



[A booting screen is displayed]


Screen:

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

kalkin login:



Hm.


After some reading/searching, I find this:


Excerpt from:
wiki.centos.org/HowTos/InstallFromUSBkey

Older Method

[...]

13. Boot from the USB media by setting it as the first BIOS boot device, or on some BIOSs by hitting a key such as F12 to select a boot device after POST.

14. During the installation process, the user is asked "What type of media contains the installation image?" Select the first partition on the USB key, which should appear in the menu under "Hard drive", then /dev/sda1 or whatever device corresponds to the first USB partition.

15. After partitioning, the user is asked whether to install the Grub boot loader and where to install it. After booting from the USB key, the BIOS may think that the USB key is the first drive. If the USB is seen as the first device, then to install the Grub boot loader on the hard drive MBR, which is the usual case, the user must change the order of the hard drives using the Grub advanced installation options.



Earlier, with experimentation, I managed to perform steps 13 and 14.

Key section: "After booting from the USB key, the BIOS may think that the USB key is the first drive."

It looks like I successfully installed the Centos iso image onto the primary memory stick, from which I had originally booted Centos on Kalkin.

The next sentence describes a solution: "If the USB is seen as the first device, then to install the Grub boot loader on the hard drive MBR, which is the usual case, the user must change the order of the hard drives using the Grub advanced installation options."


MBR = "master boot record"



Full excerpt from:
wiki.centos.org/HowTos/InstallFromUSBkey

Older Method

This method has been reported [link] as still viable for CentOS 6.4

Building a distribution on a USB key as of CentOS 6.2 - thanks to Mark Roth for the CentOS-6 procedure, and to Yves Bellefeuille on the CentOS-Docs list for several additions and corrections.

Recommended: An 8GB or larger USB key.

1. Partition the USB key into two partitions: the first, FAT32, and about 250M; the second, the rest of the drive, and ext3. (An ext3 partition is required because the ISO file, that will later be copied to it, is larger than the maximum file size for a FAT32 or VFAT partition.)

2. Mount DVD1, if it isn't automounted (on /media, or /mnt). The following assumes /mnt/USB and /mnt/DVD.

3. Mount the USB key on /mnt/USB/.

4. Copy the directory and contents of /mnt/DVD/isolinux to /mnt/USB/.

5. Rename /mnt/USB/isolinux to /mnt/USB/syslinux

6. Rename /mnt/USB/syslinux/isolinux.cfg to /mnt/USB/syslinux/syslinux.cfg

7. Copy the directory and contents of /mnt/DVD/images to /mnt/USB/. (A bug has been filed [ToDo - add link] because as of 11 Jan 2012, the install requires the .iso (see below), but linux rescue requires the contents of images to load and run.)

8. Assuming that the USB key is /dev/sdb

syslinux /dev/sdb1


9. Unmount the first USB partition, and mount the second

umount /mnt/USB
mount /dev/sdb2 /mnt/USB


10. Copy the .iso file to /mnt/USB. Do not use the LiveCD or LiveDVD. Use DVD1, the minimal CD ISO, or a combined DVD1/DVD2 created following CD to DVD Media [link]. Do not copy the contents - the install now wants the .iso file itself, which it mounts during installation, and follow the upstream Installation_Guide [link] to create an images directory on the same partition. Optionally, add DVD2 if you used DVD1, and need it for the install.

11. Optional: On /mnt/USB, create a grub.conf. This may be required if your system wants the USB key as the first drive, so that you can later copy it to the hard disk. See HowTos/GrubInstallation [link] section 2 for guidance.

12. Umount the USB key, and it's ready to use.

13. Boot from the USB media by setting it as the first BIOS boot device, or on some BIOSs by hitting a key such as F12 to select a boot device after POST.

14. During the installation process, the user is asked "What type of media contains the installation image?" Select the first partition on the USB key, which should appear in the menu under "Hard drive", then /dev/sda1 or whatever device corresponds to the first USB partition.

15. After partitioning, the user is asked whether to install the Grub boot loader and where to install it. After booting from the USB key, the BIOS may think that the USB key is the first drive. If the USB is seen as the first device, then to install the Grub boot loader on the hard drive MBR, which is the usual case, the user must change the order of the hard drives using the Grub advanced installation options.

16. After the Grub installation options, the following error message may appear: "Missing ISO 9660 image: The installer has tried to mount image #1, but cannot find it on the hard drive". The installation program is looking for the ISO file on the first partition of the USB key, but it's on the second partition. Go to a terminal with a shell with Ctrl-Alt-F2, unmount the first partition of the USB

umount /mnt/isodir


mount the second partition on the USB device. This will be the same device used in #14 above - for example

mount -t ext3 /dev/sda2 /mnt/isodir


Return to the installation program (Ctrl-Alt-F6) and choose "Retry".

17. Finish the installation and reboot without the USB device connected. If there are problems booting then it is likely the boot record was written to the wrong device. See How to re-install bootstrap code (GRUB) [link], and if having difficulties determining the correct device, Troubleshooting GRUB Issues [link].



I think this error message I saw earlier:
Missing ISO 9660 Image
The installer has tried to mount image #1, but cannot find it on the hard drive.
Please copy this image to the driver and click Retry. Click Exit to abort the installation.

is due to the fact that the installation process had just written an ext4 filesystem to the memory stick (rather than to Kalkin's hard drive). There was then no ISO image on the memory stick to be found.

However, supposing I had managed to point the installation process correctly at Kalkin's hard drive, I think I might still need a second partition containing the Centos iso file (or a second memory stick containing that file).

For now, I will focus on "the user must change the order of the hard drives using the Grub advanced installation options.".


Do some reading.


What is Grub, exactly?


wiki.centos.org/TipsAndTricks/ReinstallGRUB
links to:
access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/ch-grub
which is part of the Red Hat Enterprise Linux 6 Installation Guide.

Centos is a downstream version of Red Hat Enterprise Linux.


Excerpt from:
access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/ch-grub


APPENDIX E. THE GRUB BOOT LOADER

When a computer running Linux is turned on, the operating system is loaded into memory by a special program called a boot loader. A boot loader usually exists on the system's primary hard drive (or other media device) and has the sole responsibility of loading the Linux kernel with its required files or (in some cases) other operating systems into memory.


E.1. Boot Loaders and System Architecture

Each architecture capable of running Red Hat Enterprise Linux uses a different boot loader. The following table lists the boot loaders available for each architecture:

Table E.1. Boot Loaders by Architecture

ArchitectureBoot Loaders
AMD AMD64GRUB
IBM Power Systemsyaboot
IBM System zz/IPL
x86GRUB


This appendix discusses commands and configuration options for the GRUB boot loader included with Red Hat Enterprise Linux for the x86 architecture.



So Grub is the thing that loads the operating system into system memory (RAM).


Google "centos access grub".


First result:
www.centos.org/docs/5/html/Installation_Guide-en-US/s1-grub-interfaces.html

9.5. GRUB Interfaces

GRUB features three interfaces which provide different levels of functionality. Each of these interfaces allows users to boot the Linux kernel or another operating system.

The interfaces are as follows:

Note: The following GRUB interfaces can only be accessed by pressing any key within the three seconds of the GRUB menu bypass screen.


Menu Interface

This is the default interface shown when GRUB is configured by the installation program. A menu of operating systems or preconfigured kernels are displayed as a list, ordered by name. Use the arrow keys to select an operating system or kernel version and press the
Enter
key to boot it. If you do nothing on this screen, then after the time out period expires GRUB will load the default option.

Press the
e
key to enter the entry editor interface or the
c
key to load a command line interface.

Refer to Section 9.7, "GRUB Menu Configuration File" [link] for more information on configuring this interface.


Menu Entry Editor Interface

To access the menu entry editor, press the
e
key from the boot loader menu. The GRUB commands for that entry are displayed here, and users may alter these command lines before booting the operating system by adding a command line (
o
inserts a new line after the current line and
O
inserts a new line before it), editing one (
e
), or deleting one (
d
).

After all changes are made, the
b
key executes the commands and boots the operating system. The
Esc
key discards any changes and reloads the standard menu interface. The
c
key loads the command line interface.

Tip: For information about changing runlevels using the GRUB menu entry editor, refer to Section 9.8, "Changing Runlevels at Boot Time" [link].


Command Line Interface

The command line interface is the most basic GRUB interface, but it is also the one that grants the most control. The command line makes it possible to type any relevant GRUB commands followed by the
Enter
key to execute them. This interface features some advanced shell-like features, including
Tab
key completion based on context, and
Ctrl
key combinations when typing commands, such as
Ctrl
-
a
to move to the beginning of a line and
Ctrl
-
e
to move to the end of a line. In addition, the arrow,
Home
,
End
, and
Delete
keys work as they do in the bash shell.

Refer to Section 9.6, "GRUB Commands" [link] for a list of common commands.


9.5.1. Interfaces Load Order

When GRUB loads its second stage boot loader, it first searches for its configuration file. Once found, the menu interface bypass screen is displayed. If a key is pressed within three seconds, GRUB builds a menu list and displays the menu interface. If no key is pressed, the default kernel entry in the GRUB menu is used.

If the configuration file cannot be found, or if the configuration file is unreadable, GRUB loads the command line interface, allowing the user to type commands to complete the boot process.

If the configuration file is not valid, GRUB prints out the error and asks for input. This helps the user see precisely where the problem occurred. Pressing any key reloads the menu interface, where it is then possible to edit the menu option and correct the problem based on the error reported by GRUB. If the correction fails, GRUB reports an error and reloads the menu interface.



Key sentence: "The following GRUB interfaces can only be accessed by pressing any key within the three seconds of the GRUB menu bypass screen."


What is a "second stage boot loader"?


Rough plan:
1. Boot from prepared memory stick, as done earlier. Kalkin's BIOS will automatically place the memory stick in front of the hard drive in its boot queue.
2. Interrupt boot sequence at the appropriate point (when? what does the "GRUB menu bypass screen" look like?) in order to arrive at Grub command line prompt.
3. Using the Grub advanced installation options, place the hard drive in front of the memory stick in the boot queue of the BIOS.
4. Install Centos to Kalkin's hard drive.


I'm using the term "boot queue" to mean "the order in which the BIOS tries to boot from the available devices".


Is there a better term?


Google "bios hard drive order".


First result:
www.boot-disk.com/boot_priority.htm


Excerpt:

8 About Boot Priority

To boot from a CD, DVD or USB device, make sure that the device has boot sequence priority over the hard drive.


BIOS Boot

BIOS (Basic Input Output Subsystem) is a programmable chip that controls how information is passed to various devices in the computer system. A typical method to access the BIOS settings screen is to press ESC, F1, F2, F8 or F10 during the boot sequence.

BIOS settings allow you to run a boot sequence from a floppy drive, a hard drive, a CD-ROM drive or an external device. You may configure the order that your computer searches these physical devices for the boot sequence.

The first device in the order list has the first boot priority. For example, to boot from a CD-ROM drive instead of a hard drive, place the CD-ROM drive ahead of the hard drive in priority.

Before you set boot priority for a USB device, plug the device into a USB port.

To specify the boot sequence:


1. Start the computer and press ESC, F1, F2, F8 or F10 during the initial startup screen. Depending on the BIOS manufacturer, a menu may appear.

2. Choose to enter BIOS setup. The BIOS setup utility page appears.

3. Use the arrow keys to select the BOOT tab. System devices appear in order of priority.

4. To give a CD or DVD drive boot sequence priority over the hard drive, move it to the first position in the list.

5. To give a USB device boot sequence priority over the hard drive, do the following:
- Move the hard drive device to the top of the boot sequence list.
- Expand the hard drive device to display all hard drives.
- Move the USB device to the top of the list of hard drives.

6. Save and exit the BIOS setup utility.

7. The computer will restart with the changed settings.

[...]

Note: Using an incorrect BIOS setting can cause a system malfunction. Please follow the BIOS guide provided with your computer motherboard. If you read these instructions and you are not sure how to change a setting, it is better to leave it as the default setting.



Hm. "boot sequence priority list" is probably the most accurate term, although for brevity I think I prefer to use the term "boot order".


In this phrase: "the user must change the order of the hard drives using the Grub advanced installation options."
I don't think the word "order" exactly refers to the boot order stored in the BIOS.

I suspect that Grub, when it starts, loads the BIOS's boot order, but if the BIOS boot order is changed while Grub is running (is this even possible?), this will not cause Grub to reload the boot order from the BIOS. Conversely, if I change the boot order stored in Grub's memory, using the Grub advanced installation options, this probably won't affect the BIOS's stored boot order.

When Grub has loaded the initial program (which presents several options, of which the first is "Install or upgrade an existing system"), I think this program will use the boot order stored in Grub, not the one stored in the BIOS.


This line:
"Please follow the BIOS guide provided with your computer motherboard."
suggests that motherboard manufacturer's websites would be a productive avenue for searching for information on specific BIOSes. I didn't know that the BIOS was considered to be part of the motherboard.


Searching through www.pcguide.com, I find this:

Excerpt from:
www.pcguide.com/ref/mbsys/bios/funcProgram-c.html
Author: Charles M. Kozierok

The BIOS Program

In order for any computer to function, it must have software to run on it. All that a processor - or any hardware for that matter - knows how to do is to follow instructions [link]. The software is that collection of instructions, as described in this part of the Introduction [link]. All regular programs that you run on your PC are stored permanently on your hard disk [link], and are loaded into your system memory [link] (RAM) when you need to use them. From the memory, the processor can access the instructions coded into the program and run them, which lets you do your work.

When you first turn on your PC, the processor is "raring to go", but it needs some instructions to execute. However, since you just turned on the machine, your system memory is empty; there are no programs to run. To make sure that the BIOS program is always available to the processor, even when it is first turned on, it is "hard-wired" into a read-only-memory (ROM) chip that is placed on your motherboard.

A uniform standard was created between the makers of processors and the makers of BIOS programs, so that the processor would always look in the same place in memory to find the start of the BIOS program. The processor gets its first instructions from this location, and the BIOS program begins executing. The BIOS program then begins the system boot sequence [link] which calls other programs, gets your operating system loaded, and your PC up and running.

The BIOS program is always located in a special reserved memory area, the upper 64K of the first megabyte of system memory (addresses F000h to FFFFh). Some BIOSes use more than this 64K area.



Key sentence: "To make sure that the BIOS program is always available to the processor, even when it is first turned on, it is "hard-wired" into a read-only-memory (ROM) chip that is placed on your motherboard."



I'll try to answer the question I had about step 2 of the rough plan above. I want to know where and when to interrupt the Centos boot sequence in order to access the Grub command line interface.

I'll boot using the memory stick on which Centos was installed. The visible boot sequence won't be exactly the same as when booting from the memory stick when it originally contained the contents of the Centos ISO image, but it will be a useful data point.


Insert the memory stick on which Centos was installed.


Press the power button to boot Kalkin.


[Various startup messages are displayed, but not recorded here]


Screen:

Press any key to enter the menu

Booting CentOS 6 (2.6.32-696.e16.x86_64) in 3 seconds...



Press
r
key.

Screen:

GNU GRUB version 0.97 (623K lower / 3394536K upper memory)

- CentOS 6 (2.6.32-696.e16.x86_64)

Use the [up arrow symbol] and [down arrow symbol] keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the commands before booting, 'a' to modify the kernel arguments before booting, or 'c' for a command-line.


CentOS 6 (2.6.32-696.e16.x86_64)
is highlighted.

This is presumably the Grub Menu Interface.

Therefore the previous screen was the Grub menu bypass screen.


Press
c
key.

Screen:

GNU GRUB version 0.97 (623K lower / 3394536K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits.]

grub>


Press TAB.

grub>

Possible commands are: background blocklist boot cat chainloader clear cmp color configfile debug displayapm displaymem embed find foreground fstest geometry halt help hide impsprobe initrd install ioprobe kernel lock makeactive map md5crypt module modulenounzip pager partnew parttype password pause read reboot root rootnoverify savedefault serial setkey setup silent splashimage terminal terminfo testload testvbe unhide uppermem vbeprobe verbose


grub> help help

help: help [--all] [PATTERN ...]
Display helpful information about builtin commands. Not all commands aren't shown without the option '--all'.

grub>



If I change the boot order in Grub, and then exit Grub and continue the boot sequence, will this cause Grub to then try to boot the Centos installation program from the wrong device (in this case, from the hard disk, rather than from the memory stick)?


Google "grub 0.97 documentation".


First result:
www.gnu.org/software/grub/manual/legacy
"GNU GRUB Manual 0.97"


It's a table of contents. I'll do some reading.


Excerpt from:
www.gnu.org/software/grub/manual/legacy/Overview.html#Overview

Briefly, a boot loader is the first software program that runs when a computer starts. It is responsible for loading and transferring control to an operating system kernel software (such as Linux or GNU Mach). The kernel, in turn, initializes the rest of the operating system (e.g. a GNU system).

[...]

Besides the GRUB boot loader itself, there is a grub shell
grub
(see Invoking the grub shell [link]) which can be run when you are in your operating system. It emulates the boot loader and can be used for installing the boot loader.



I note the option to run the grub shell from within the operating system because later I may try to boot into the Centos installation program (so boot is complete, and changing Grub boot order won't affect this), then switch to shell, then run grub shell, then change boot order within Grub, then attempt to finish Centos installation (now targeted at the hard drive instead of the memory stick).


Excerpt from:
www.gnu.org/software/grub/manual/legacy/Naming-convention.html#Naming-convention

The device syntax used in GRUB is a wee bit different from what you may have seen before in your operating system(s), and you need to know it so that you can specify a drive/partition.

Look at the following examples and explanations:

(fd0)


First of all, GRUB requires that the device name be enclosed with `(' and `)'. The `fd' part means that it is a floppy disk. The number `0' is the drive number, which is counted from zero. This expression means that GRUB will use the whole floppy disk.

(hd0,1)


Here, `hd' means it is a hard disk drive. The first integer `0' indicates the drive number, that is, the first hard disk, while the second integer, `1', indicates the partition number (or the PC slice number in the BSD terminology). Once again, please note that the partition numbers are counted from zero, not from one. This expression means the second partition of the first hard disk drive. In this case, GRUB uses one partition of the disk, instead of the whole disk.

[...]

Of course, to actually access the disks or partitions with GRUB, you need to use the device specification in a command, like `root (fd0)' or `unhide (hd0,2)'. To help you find out which number specifies a partition you want, the GRUB command-line (see Command-line interface [link]) options have argument completion. This means that, for example, you only need to type

root (


followed by a <TAB>, and GRUB will display the list of drives, partitions, or file names. So it should be quite easy to determine the name of your target partition, even with minimal knowledge of the syntax.




Excerpt from:
www.gnu.org/software/grub/manual/legacy/root.html#root

- Command: root device [hdbias]

Set the current root device to the device device, then attempt to mount it to get the partition size (for passing the partition descriptor in ES:ESI, used by some chain-loaded boot loaders), the BSD drive-type (for booting BSD kernels using their native boot format), and correctly determine the PC partition where a BSD sub-partition is located. The optional hdbias parameter is a number to tell a BSD kernel how many BIOS drive numbers are on controllers before the current one. For example, if there is an IDE disk and a SCSI disk, and your FreeBSD root partition is on the SCSI disk, then use a `1' for hdbias.



So, if I want to make Grub see Kalkin's hard drive as the first device in its boot order, I should try this command or something like it:

root(hd1)


which says "take the second hard drive ('hard drive 1' becomes 'hd1') and treat it as the root device".

I should type out
root (
first and press the Tab key so that Grub tells me what it sees.

There are only two hard drive devices, the hard drive and the memory stick, and they're not in order, so I know that they should be switched within Grub's boot order. If there were more than two drives, I would find it harder to distinguish them while working within Grub. I would like to be able to see the names of each hard drive device, so that I can distinguish them by name rather than by guessing their order.



Press the power button to turn Kalkin off.

Press the power button to boot Kalkin.


[Various startup messages are displayed, but not recorded here]


Screen:

Press any key to enter the menu

Booting CentOS 6 (2.6.32-696.e16.x86_64) in 3 seconds...



Press
j
key.

Screen:

GNU GRUB version 0.97 (574 lower / 3394536K upper memory)

- CentOS 6 (2.6.32-696.e16.x86_64)

Use the [up arrow symbol] and [down arrow symbol] keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the commands before booting, 'a' to modify the kernel arguments before booting, or 'c' for a command-line.


CentOS 6 (2.6.32-696.e16.x86_64)
is highlighted.


Press
c
key.

Screen:

GNU GRUB version 0.97 (574K lower / 3394536K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits.]

grub>


grub> root (


Press the Tab key.

grub> root (

Possible disks are: fd0 fd1 hd0 hd1


Hm. I'm surprised to see fd0 and fd1, as these indicate floppy disks.

grub> root


Press Enter.

grub> root

(hd0,0): Filesystem type is ext2fs, partition type 0x83


Ok. Let's set root device to hd1.

grub> root (hd1)


grub> root

(hd1): Filesystem type unknown, using whole disk


Press Esc to exit the Grub command-line.


Screen:

GNU GRUB version 0.97 (574 lower / 3394536K upper memory)

- CentOS 6 (2.6.32-696.e16.x86_64)

Use the [up arrow symbol] and [down arrow symbol] keys to select which entry is highlighted.
Press enter to boot the selected OS, 'e' to edit the commands before booting, 'a' to modify the kernel arguments before booting, or 'c' for a command-line.


CentOS 6 (2.6.32-696.e16.x86_64)
is highlighted.

Press Enter.


[A booting screen is displayed]


Screen:

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

kalkin login:



Hm, interesting. Changing the root device in Grub did not affect Grub's knowledge of where to find the Centos kernel (i.e. on the memory stick, not on the hard drive) and thereby be able to boot Centos.

I now know (roughly) how to reach the Grub command-line when booting and how to set the root device in Grub's settings.


I'm going to rewrite the original Centos iso image to the memory stick. I'll attempt to install it again to Kalkin's hard disk, interrupting the boot process to change Grub's root device setting, and then continue with the boot. Hopefully, I will arrive at the Centos installation program, which will then target Kalkin's hard disk instead of the memory stick.


Let's move back to Aineko.


WARNING: Perform your backups now in order to avoid catastrophic data loss from making a mistake when using Disk Utility or when running the
dd
command.



Recipe for writing an OS iso image file to a memory stick:
- Format the USB memory stick as a single FAT32 partition. Partition scheme = Master Boot Record. On Mac OS X, use Disk Utility to do this.
- Remove the memory stick.
- In a terminal, change directory to the directory containing the OS image (e.g. CentOS-6.9-x86_64-minimal.iso)
- Run this command: $ df -h
- Reinsert the memory stick.
- Run this command: $ df -h
- In the output, find the item name that wasn't listed in the output from the first time that
df -h
was run. Example: /dev/disk1s1
- Remove the /dev/ prefix to get the device name. Example: /dev/disk1s1 becomes disk1s1
- Run this command: $ sudo diskutil unmount /dev/[device_name]
-- Example: $ sudo diskutil unmount /dev/disk1s1
- Get raw device name by deleting the partition name e.g. 's1' and adding 'r' to the front. Example: disk1s1 becomes rdisk1
- WARNING: If you make a mistake in the next step you could wipe your operating system.
- Run this command: $ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/[raw_device_name]
-- Example: $ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/rdisk1
-- This should take a few minutes.
- Remove the memory stick.


Insert memory stick.

Pop-up dialogue box opens with this message:
The disk you inserted was not readable by this computer.

and three buttons: Initialize..., Ignore, Eject.

Click Ignore. No icon for the disk appears on the Desktop.

Open Disk Utility (Version 11.5.2 (298.4)).

In Disk Utility, select the memory stick (it shows up as "15.96 GB hp v150w Media").

Click Erase tab.
- Format = MS-DOS (FAT)
- Name = CENTOS6_9_M
Click Erase.

Pop-up dialogue box opens with this message:
Are you sure you want to erase the disk "hp v150w Media"?
Erasing a disk deletes all data on all its partitions.
This disk has 2 partitions:
"disk1s1"
"disk1s2"

and two buttons: Cancel and Erase.
Click Erase.

Click Partition tab. Under Volume Scheme, choose 1 Partition. Click Options and choose Master Boot Record partition scheme.
Under Volume Information, set these values:
- Name = CENTOS6_9_M
- Format = MS-DOS (FAT)
- Size = 15.96
Click Apply.

Pop-up dialogue box opens with this message:
Are you sure you want to partition the disk "hp v150w Media"?
Partitioning this disk will delete all data on this disk.
This partition will be erased: "CENTOS6_9_M"
This partition will be added: "CENTOS6_9_M"

and two buttons: Cancel and Partition.
Click Partition.

There is now an icon on the Desktop called CENTOS6_9_M.

Quit Disk Utility.

Eject CENTOS6_9_M disk (right-click icon on Desktop and choose Eject).

Remove the CENTOS6_9_M memory stick.


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ df -h

Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 117Gi 107Gi 9.7Gi 92% / devfs 109Ki 109Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk0s3 32Gi 14Gi 18Gi 45% /Volumes/Untitled


Reinsert the CENTOS6_9_L memory stick. It mounts automatically and an icon appears on the Desktop.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ df -h

Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 117Gi 107Gi 9.7Gi 92% / devfs 110Ki 110Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk0s3 32Gi 14Gi 18Gi 45% /Volumes/Untitled /dev/disk1s1 15Gi 768Ki 15Gi 1% /Volumes/CENTOS6_9_M


Find the device name that wasn't listed before:
/dev/disk1s1


Unmount the disk:
aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ diskutil unmount /dev/disk1s1

Volume CENTOS6_9_M on disk1s1 unmounted


Get raw device name by deleting the partition name e.g. 's1' and adding 'r' to the front. In this case,
disk1s1
becomes
rdisk1



WARNING: If you make a mistake in the next step you could wipe your operating system.


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/rdisk1

Password:
408+0 records in
408+0 records out
427819008 bytes transferred in 59.544502 secs (7184862 bytes/sec)



59 seconds / (60 seconds / minute) = 0.98 minutes


Remove and re-insert the memory stick.

Disk is auto-mounted as CentOS_6.9_Final.

Eject disk.

Remove memory stick.


Let's move to Kalkin.


Press the power button to turn Kalkin off.

Insert memory stick.

Press the power button to boot Kalkin.


I used a smartphone to film the boot so that I could check each message that appeared on the monitor.


[Various startup messages that have already been seen are displayed, but not recorded here]


Screen: [very brief]

Attempting Boot From USB Device

ISOLINUX 4.04 0x543eb00b EMDD



Screen: [very brief]

- Press the <ENTER> key to begin the installation process.



Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System



Hm. I didn't see anything that looked like a Grub menu bypass screen.


I'm going to try an idea I mentioned earlier:
- choose the option
Install or upgrade an existing system
.
- tell the Centos installation program to use the memory stick (i.e. the first hard drive device in the boot order) as the source for the Centos installation image.
- arrive at GUI.
- switch to shell (via Ctrl-Alt-F2).
- run grub shell.
- set root device in Grub to be the hard drive.
- switch back to Centos installation program GUI (via Ctrl-Alt-F6).
- perform installation.

Hopefully, the change of root device will cause the Centos installation program to target Kalkin's hard drive instead of the memory stick from which it booted.


Press the power button to turn Kalkin off.

Press the power button to boot Kalkin.


[Various startup messages are displayed, but not recorded here]


Kalkin arrives at this screen:

Welcome to CentOS for x86_64

Choose a Language
What language would you like to use during the installation process?
[...]
English
[...]
OK

<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen


English
is highlighted.

Press Enter.


Screen:

Keyboard Type
What type of keyboard do you have?
[...]
us
[...]
OK, Back


us
is highlighted.

Press Enter.


Screen:

Installation Method
What type of media contains the installation image?
- Local CD/DVD
- Hard drive
- NFS directory
- URL
OK, Back


Local CD/DVD
is highlighted.

Press the Down Arrow key to select
Hard drive
. Press Enter.


Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
Directory holding image: ________________
OK, Back


/dev/sda1
is highlighted.

Press Enter.


[A couple messages are displayed, but not recorded here]


Screen:

CentOS 6
Community ENTerprise Operating System
Back, Next


Next is a button. Back is a greyed-out button.

This is the GUI screen.


Press Ctrl-Alt-F2.

[anaconda root@localhost /]#


This is a terminal.


Text of:
www.gnu.org/software/grub/manual/legacy/Invoking-the-grub-shell.html#Invoking-the-grub-shell

15 Invoking the grub shell

This chapter documents the grub shell
grub
. Note that the grub shell is an emulator; it doesn't run under the native environment, so it sometimes does something wrong. Therefore, you shouldn't trust it too much. If there is anything wrong with it, don't hesitate to try the native GRUB environment, especially when it guesses a wrong map between BIOS drives and OS devices.

- Basic usage [link]: How to use the grub shell
- Installation under UNIX [link]: How to install GRUB via grub
- Device map [link]: The map between BIOS drives and OS devices



Excerpt from:
www.gnu.org/software/grub/manual/legacy/Basic-usage.html#Basic-usage

15.1 Introduction into the grub shell

You can use the command
grub
for installing GRUB under your operating systems and for a testbed when you add a new feature into GRUB or when fixing a bug.
grub
is almost the same as the Stage 2, and, in fact, it shares the source code with the Stage 2 and you can use the same commands (see Commands [link]) in
grub
. It is emulated by replacing BIOS calls with UNIX system calls and libc functions.

The command
grub
accepts the following options:

--help
Print a summary of the command-line options and exit.

--version
Print the version number of GRUB and exit.

[...]

--boot-drive=drive
Set the stage2 boot_drive to drive. This argument should be an integer (decimal, octal or hexadecimal).

--install-partition=par
Set the stage2 install_partition to par. This argument should be an integer (decimal, octal or hexadecimal).



[anaconda root@localhost /]# grub --version

grub (GNU GRUB 0.97)

[anaconda root@localhost /]# grub

Probing devices to guess BIOS drives. This may take a long time.
Unknown partition table signature

GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits.]
grub>


grub> root (


Press the Tab key. Cursor advances one tab increment.

Hm. No tab completion.


grub> root

root
(fd0): Filesystem type unknown, partition type 0x0



Hm. Perhaps the Centos installation program is run on a floppy disk emulator.


Ok. Let's set root device to hd1.

grub> root (hd1)

root (hd1)
Filesystem type unknown, using whole disk


Press Esc to exit the Grub command-line.

grub> ^[


Hm.

grub> exit


Error 2: Unrecognized command



Excerpt from:
www.gnu.org/software/grub/manual/legacy/Command_002dline-and-menu-entry-commands.html#Command_002dline-and-menu-entry-commands

These commands are usable in the command-line and in menu entries. If you forget a command, you can run the command
help
.

[...]

quit: Exit from the grub shell


grub> quit

quit
[anaconda root@localhost /]#



Ok. I've entered the grub shell, changed the root device, and exited the grub shell. I'm back at the Centos installation program shell.

Press Ctrl-Alt-F6.


Screen:

CentOS 6
Community ENTerprise Operating System
[buttons:] Back, Next


Next is a button. Back is a greyed-out button.

This is the GUI screen.

Click Next.


Screen:

What type of devices will your installation involve?
- Basic Storage Devices: Installs or upgrades to typical types of storage devices. If you're not sure which option is right for you, this is probably it.
- Specialized Storage Devices: Installs or upgrades to enterprise devices such as Storage Area Networks (SANs). This option will allow you to add FCoEes / iSCSI / zFCP disks and to filter out devices the installer should ignore.
[buttons:] Back, Next


Basic Storage Devices is selected.

Click Next.


Screen:

Warning
Disk sdg contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sdg.
[button:] OK
[buttons:] Back, Next


Click OK.


Screen:

Please name this computer. The hostname identifies the computer on a network.
Hostname: [text field]
[button:] Configure Network
[buttons:] Back, Next


Type "kalkin" into the text field.

Click Next.


Screen:

Please select the nearest city in your time zone:
[Map of the world with dots for cities. New York is named.]
Selected city: New York, America (Eastern (most areas))
[Drop-down list. America/New York is selected.]
[checkbox: ticked] System clock uses UTC
[buttons:] Back, Next


Click the drop-down list and select Europe/London. Pressing Page Down to move through the list is faster than scrolling.

Click Next.


Screen:

The root account is used for administering the system. Enter a password for the root user.
Route Password: [text field]
Confirm: [text field]
[buttons:] Back, Next


Type in a password for the root user into both text fields.

Click Next.


Screen:

Which type of installation would you like?
[radio-button list:]
- Use All Space: Removes all partitions on the selected device(s). This includes partitions created by other operating systems. Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Replace Existing Linux System(s): Removes only Linux partition (created from a previous Linux installation). This does not remove other partitions you may have on your storage device(s) (such as VFAT or FAT32). Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Shrink Current System: Shrinks existing partitions to create free space for the default layout.
- Use Free Space: Retains your current data and partitions and uses only the unpartitioned space on the selected device(s), assuming you have enough free space available.
- Creed Custom Layout: Manually create your own custom layout on the selected device(s) using our partitioning tool.
[checkbox: not ticked] Encrypt system
[checkbox: not ticked] Review and modify partitioning layout
[buttons:] Back, Next


Replace Existing Linux System(s) is selected.

Click Use All Space.

Click Next.


Screen:

Writing storage configuration to disk
The partitioning options you have selected will now be written to disk. Any data on deleted or reformatted partitions will be lost.
[buttons:] Go back, Write changes to disk
[buttons:] Back, Next


Click Write changes to disk.


Screen:

Formatting
Creating ext4 filesystem on /dev/sda1
[progress bar]
[buttons:] Back, Next



[Various other messages are displayed, but not recorded here]


Screen:

Missing ISO 9660 Image
The installer has tried to mount image #1, but cannot find it on the hard drive.
Please copy this image to the driver and click Retry. Click Exit to abort the installation.
[buttons:] Exit, Retry
[buttons:] Back, Next



Hm. It looks like I've hit exactly the same problem as before. The Centos installation program targeted the memory stick, wrote an ext4 filesystem to it, and now can't find the Centos installation iso image. Changing the root device in the grub emulator shell during installation setup had no effect.


Click Exit.


[Various messages are displayed, but not recorded here]


Centos installation program appears to have exited.


Screen:

Attempting Boot From USB Device


Looks as though I'm back in the BIOS.


After 10 minutes, no change.


Press the power button to turn Kalkin off.


Remove the memory stick.


Insert memory stick into Aineko.

Pop-up dialogue box opens with this message:
The disk you inserted was not readable by this computer.

and three buttons: Initialize..., Ignore, Eject.
Click Eject.



Hm.


Hm.


Hm.


After searching and reading for a while, I find this forum post:
forums.fedoraforum.org/showthread.php?272933-How-to-change-boot-device-in-GRUB-configuration


I've copied all of it here, because I don't understand some of the concepts and I may need to refer back to it.

Q: How to change boot device in GRUB configuration?

#1
22nd November 2011, 04:48 PM
Sagari

The situation: Fedora 14 is being installed from a USB stick on a BenQ notebook.

Everything goes smooth, except for one problem: Fedora considers USB stick /dev/sda device, the first HDD is /dev/sdb during installation. After USB is unplugged, GRUB refuses to boot, telling it can't find the files.

If USB is inserted again, OS boots fine, and the command

Code:
grub-install /dev/sdb

works fine, but after the USB is plugged out and HDD becomes /dev/sda, boot sequence still fails.

The first menu entry contains

root (hd1,0)

and changing hd1 to hd0 also doesn't help.

What should be changed to alllow booting from /dev/sda ?

Note: do not advise to switch to later version of Fedora. F14 is required, and it works fine, except for the mentioned GRUB problem.

Thanks.


#2
22nd November 2011, 05:57 PM
fantab

I suggest you check you BIOS settings for hard drive boot order.

Plugin your USB and start your computer... go to BIOS and change the Hard Disk Boot Order if it shows your USB as FIRST HDD to your Internal HDD.

Also If you have told your BIOS to boot from USB - after Installation Change it back to boot from HDD.

You may have to reinstall for simplicity or you may have to reinstall GRUB.


#3
22nd November 2011, 06:01 PM
jpollard

Also check the /boot/grub.conf file and verify the root= options on the kernel lines. If they specify a specific device (such as /dev/sdb) then they need to be switched to a UUID or volume lable.


#4

Quote: Originally Posted by fantab
I suggest you check you BIOS settings for hard drive boot order.

Plugin your USB and start your computer... go to BIOS and change the Hard Disk Boot Order if it shows your USB as FIRST HDD to your Internal HDD.

Also If you have told your BIOS to boot from USB - after Installation Change it back to boot from HDD.

You may have to reinstall for simplicity or you may have to reinstall GRUB.


Boot device sequence was restored to 'HDD first' after the OS was installed.

Quote: Originally Posted by jpollard
Also check the /boot/grub.conf file and verify the root= options on the kernel lines. If they specify a specific device (such as /dev/sdb) then they need to be switched to a UUID or volume lable.


root options on the kernel line does use UUID, for no avail.


#5
23rd November 2011, 12:40 AM
buddha
Perhaps check the splashimage line in grub.conf and make sure that it says hd0 instead of hd1.


#6
23rd November 2011, 06:07 AM
Last edited by fantab; 23rd November 2011 at 06:11 AM.
fantab

Quote:Originally Posted by Sagari
Boot device sequence was restored to 'HDD first' after the OS was installed.


It is unusual that your USB assumes /dev/sda. Try using a LiveCD if you can.


#7
28th November 2011, 03:23 AM
Sagari

Quote: Originally Posted by fantab
It is unusual that your USB assumes /dev/sda. Try using a LiveCD if you can.


I have just installed the system again, this time carefully setting bot loader installation device and devices assignment.

It took significantly less time than trying to persuade GRUB to boot from different device.



Key section:

"Plugin your USB and start your computer... go to BIOS and change the Hard Disk Boot Order if it shows your USB as FIRST HDD to your Internal HDD.

Also If you have told your BIOS to boot from USB - after Installation Change it back to boot from HDD."


So, new plan:
- Write Centos iso to memory stick again
- Boot into BIOS
- Change the BIOS boot order so that the hard drive comes first. This will mean that the Centos installation program will see the hard drive as the first device (/dev/sda) and will therefore target the hard drive for installation.
- Within BIOS, manually choose to boot from the memory stick, bypassing the boot order.
- Discover (somehow) the location of the Centos iso on the memory stick as seen from the Centos installation program, so that the Centos installation program will be able to see it and install it on the hard drive.


There is no Centos iso file on the memory stick, exactly. The entire contents of the iso was written to the stick but there is no single file to point to other than the stick mount point (e.g. /dev/sdb?).

This may mean that I will instead need to copy the iso to a second memory stick again and specify the location of the Centos iso file on that stick's mount point.

Another possibility would be to follow this:
"1. Partition the USB key into two partitions: the first, FAT32, and about 250M; the second, the rest of the drive, and ext3. (An ext3 partition is required because the ISO file, that will later be copied to it, is larger than the maximum file size for a FAT32 or VFAT partition.)"
and create a second partition to hold the Centos iso file.



Let's move back to Aineko.


WARNING: Perform your backups now in order to avoid catastrophic data loss from making a mistake when using Disk Utility or when running the
dd
command.



Recipe for writing an OS iso image file to a memory stick:
- Format the USB memory stick as a single FAT32 partition. Partition scheme = Master Boot Record. On Mac OS X, use Disk Utility to do this.
- Remove the memory stick.
- In a terminal, change directory to the directory containing the OS image (e.g. CentOS-6.9-x86_64-minimal.iso)
- Run this command: $ df -h
- Reinsert the memory stick.
- Run this command: $ df -h
- In the output, find the item name that wasn't listed in the output from the first time that
df -h
was run. Example: /dev/disk1s1
- Remove the /dev/ prefix to get the device name. Example: /dev/disk1s1 becomes disk1s1
- Run this command: $ sudo diskutil unmount /dev/[device_name]
-- Example: $ sudo diskutil unmount /dev/disk1s1
- Get raw device name by deleting the partition name e.g. 's1' and adding 'r' to the front. Example: disk1s1 becomes rdisk1
- WARNING: If you make a mistake in the next step you could wipe your operating system.
- Run this command: $ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/[raw_device_name]
-- Example: $ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/rdisk1
-- This should take a few minutes.
- Remove the memory stick.


Insert memory stick.

Pop-up dialogue box opens with this message:
The disk you inserted was not readable by this computer.

and three buttons: Initialize..., Ignore, Eject.

Click Ignore. No icon for the disk appears on the Desktop.

Open Disk Utility (Version 11.5.2 (298.4)).

In Disk Utility, select the memory stick (it shows up as "15.96 GB hp v150w Media").

Click Erase tab.
- Format = MS-DOS (FAT)
- Name = CENTOS6_9_M
Click Erase.

Pop-up dialogue box opens with this message:
Are you sure you want to erase the disk "hp v150w Media"?
Erasing a disk deletes all data on all its partitions.
This disk has 2 partitions:
"disk1s1"
"disk1s2"

and two buttons: Cancel and Erase.
Click Erase.

Click Partition tab. Under Volume Scheme, choose 1 Partition. Click Options and choose Master Boot Record partition scheme.
Under Volume Information, set these values:
- Name = CENTOS6_9_M
- Format = MS-DOS (FAT)
- Size = 15.96
Click Apply.

Pop-up dialogue box opens with this message:
Are you sure you want to partition the disk "hp v150w Media"?
Partitioning this disk will delete all data on this disk.
This partition will be erased: "CENTOS6_9_M"
This partition will be added: "CENTOS6_9_M"

and two buttons: Cancel and Partition.
Click Partition.

There is now an icon on the Desktop called CENTOS6_9_M.

Quit Disk Utility.

Eject CENTOS6_9_M disk (right-click icon on Desktop and choose Eject).

Remove the CENTOS6_9_M memory stick.


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ df -h

Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 117Gi 107Gi 9.6Gi 92% / devfs 109Ki 109Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk0s3 32Gi 14Gi 18Gi 45% /Volumes/Untitled


Reinsert the CENTOS6_9_L memory stick. It mounts automatically and an icon appears on the Desktop.

aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ df -h

Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 117Gi 107Gi 9.6Gi 92% / devfs 110Ki 110Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home /dev/disk0s3 32Gi 14Gi 18Gi 45% /Volumes/Untitled /dev/disk1s1 15Gi 768Ki 15Gi 1% /Volumes/CENTOS6_9_M


Find the device name that wasn't listed before: /dev/disk1s1

Unmount the disk:
aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ diskutil unmount /dev/disk1s1

Volume CENTOS6_9_M on disk1s1 unmounted


Get raw device name by deleting the partition name e.g. 's1' and adding 'r' to the front. In this case,
disk1s1
becomes
rdisk1



WARNING: If you make a mistake in the next step you could wipe your operating system.


aineko:CentOS-6.9-x86_64-minimal stjohnpiano$ sudo dd bs=1m if=CentOS-6.9-x86_64-minimal.iso of=/dev/rdisk1

Password:
408+0 records in
408+0 records out
427819008 bytes transferred in 62.921752 secs (6799223 bytes/sec)



62.9 seconds / (60 seconds / minute) = 1.05 minutes


Remove and re-insert the memory stick.

Disk is auto-mounted as CentOS_6.9_Final.

Eject disk.

Remove memory stick.


Let's move to Kalkin.


Press the power button to turn Kalkin off.

Insert memory stick.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- hp v150w 1100
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


EFI Boot Sources
is highlighted.

The hard drive (HDS722020ALA330 RSD HUA) is not listed.


I'll reboot. I recall from exploring the BIOS boot options on Kalkin that HDS722020ALA330 RSD HUA appeared under the Hard Drive section of the Boot Menu only after Kalkin was booted for a second time with a memory stick inserted.

Press the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- hp v150w 1100
-- HDS722020ALA330 RSD HUA
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


EFI Boot Sources
is highlighted.


HDS722020ALA330 RSD HUA appears this time.

Is there a way to set it to be the first in the boot order?

None of the commands (Up Arrow, Down Arrow, Enter, Esc) look like they can be used for modifying the boot order.


Google "bios move hard disk in the boot order".


Second result:
www.lifewire.com/change-the-boot-order-in-bios-2624528
Author: Tim Fisher

Excerpt:

Changing the boot order of the "bootable" devices on your computer, like your hard drive or bootable media in a USB port (e.g. flash drive), floppy drive, or optical drive, is very easy.

The BIOS setup utility is where you change boot order settings.

Turn on or restart your computer and watch for a message during the POST about a particular key, usually Del or F2, that you'll need to press to ...enter SETUP. Press this key as soon as you see the message.

[...]

Using the instructions given for navigating around your BIOS utility, locate the option for changing the boot order.

Note: Since every BIOS setup utility is different, the specifics on where the boot order options are located varies from computer to computer. The menu option or configuration item might be called Boot Options, Boot, Boot Order, etc. The boot order option may even be located within a general menu option like Advanced Options, Advanced BIOS Features, or Other Options.

[...]

To change which device to boot from first, follow the directions on the BIOS setup utility screen to change the boot order. In this example BIOS, the boot order can be changed using the + and - keys.

Remember, your BIOS may have different instructions!

[...]

Before your boot order changes take effect, you will need to save the BIOS changes you made.

To save your changes, follow the instructions given to you in your BIOS utility to navigate to the Exit or Save and Exit menu.

Locate and choose the Exit Saving Changes (or similarly worded) option to save the changes you made to the boot order.

[...]

Choose Yes when prompted to save your BIOS configuration changes and exit.

Note: This Setup Confirmation message can sometimes be cryptic. The example above is pretty clear but I've seen many BIOS change confirmation questions that are so "wordy" that they're often difficult to understand. Read the message carefully to be sure that you're actually saving your changes and not exiting without saving changes.

Your boot order changes, and any other changes you may have made while in BIOS, are now saved and your computer will restart automatically.



Hm.


In the BIOS Startup Menu, there was this option:
- Computer Setup (F10)


I can't see an option to go back from the Boot Menu to the Startup Menu.

I'll reboot.



Press the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F10.


Screen:

HEWLETT-PACKARD COMPUTER SETUP
File | Storage | Security | Power | Advanced
- System Information
- About
- Set Time and Date
- Flash System ROM
- Replicated Setup
- Default Setup
- Apply Defaults and Exit
- Ignore Changes and Exit
- Save Changes and Exit

Aptio Setup Utility - Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.


I have used a vertical bar (|) to represent the elements of a horizontal menu.

File
and
System Information
are highlighted.


Press Right Arrow.

Screen:

HEWLETT-PACKARD COMPUTER SETUP
File | Storage | Security | Power | Advanced
- Device Configuration
- Storage Options
- DPS Self-test
- Boot Order

Aptio Setup Utility - Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.


Storage
and
Device Configuration
are highlighted.


Press Down Arrow 3 times.
Boot Order
is now highlighted.

Press Enter.


New pop-up box:

Boot Order

- EFI Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- USB Hard Drive
- Legacy Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- Hard Drive
-- Network Controller (IBA GE Slot 00C8 v1363)

F5=Disabled, ESC=Cancel, F10=Accept


EFI Boot Sources
is selected.


Press Down Arrow 7 times.

Hard Drive
is now selected.

The available commands have changed to:
F5=Disabled, ESC=Cancel, F10=Accept, Enter=Drag


Press Enter.

Hard Drive
is now highlighted.

The available commands have changed to:
F5=Disabled, ESC=Cancel, F10=Accept, Enter=Drop


Press Up Arrow.

Screen:

Boot Order

- EFI Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- USB Hard Drive
- Legacy Boot Sources
-- ATAPI CD/DVD Drive
-- Hard Drive
-- USB Floppy/CD
-- Network Controller (IBA GE Slot 00C8 v1363)

F5=Disabled, ESC=Cancel, F10=Accept


Press Enter.
Hard Drive
is now selected but not highlighted.

The available commands have changed to:
F5=Disabled, ESC=Cancel, F10=Accept, Enter=Drag


I've placed the
Hard Drive
above
USB Floppy/CD
in the boot order.


Google "usb floppy/cd bios".

Excerpt from:
pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.install.doc%2FGUID-1298D6CC-B7B4-41EE-8F7E-98C58404F133.html

For some servers, the system BIOS has two options. One is for the boot sequence (floppy, CD-ROM, hard disk) and another for the hard disk boot order (USB key, local hard disk).



Hm.

I can change the basic boot order (CD Drive, USB Floppy/CD, Hard Drive) but I don't see a way to change the hard disk boot order so as to cause the BIOS to place the hard disk ahead of the memory stick.

Some experimentation shows that the options under
EFI Boot Sources
cannot be moved into the options under
Legacy Boot Sources
and vice versa.

I very much doubt that "USB Floppy/CD" is a misnomer for "USB memory stick", but I will try it anyway.



Press Escape. The pop-up box disappears.

[At this point I explored the rest of the menus but did not find anything else that looked helpful with regard to changing boot order]

Press Left Arrow to move from Storage menu to File menu.

Press Down Arrow until
Save Changes and Exit
is highlighted.

Press Enter.


New pop-up box:

Save Changes and Exit

Are you sure you want to Save Changes and Exit?

[choices:] Yes, No


Yes
is highlighted.

Press Enter.


Kalkin reboots.

I should have held down Escape to go into the BIOS again.

Kalkin arrives at this screen:

Non-System disk or disk error
replace and strike any key when ready



Press the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- HDS722020ALA330 RSD HUA
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


EFI Boot Sources
is highlighted.

Interesting. The memory stick option (hp v150w 1100) has disappeared.

Press Down Arrow until
HDS722020ALA330 RSD HUA
is selected.

Press Enter.


Kalkin arrives at this screen:

Non-System disk or disk error
replace and strike any key when ready



Interesting. In contrast to a previous test during exploration of the BIOS boot options, choosing "HDS722020ALA330 RSD HUA" did not cause the BIOS to then boot from the memory stick.


Press the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- HDS722020ALA330 RSD HUA
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


EFI Boot Sources
is highlighted.


Huh. Well, it looks like placing
Hard Drive
above
USB Floppy/CD
in the boot order did change something.

However, I can no longer see an option to boot from the memory stick in the Boot Menu in the BIOS, even after a reboot.


Press the power button to turn Kalkin off.

Press the power button to boot Kalkin. Hold the Escape Key as it boots.

Go into the BIOS Computer Setup as shown earlier.

Open Boot Order.


Pop-up box:

Boot Order

- EFI Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- USB Hard Drive
- Legacy Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- Hard Drive
--- HDS722020ALA330 RSD HUA
-- Network Controller (IBA GE Slot 00C8 v1363)

F5=Disabled, ESC=Cancel, F10=Accept


EFI Boot Sources
is selected.

Strange. This time, the disk
HDS722020ALA330 RSD HUA
has appeared, but not the memory stick. If the memory stick had also appeared, I would be able to switch the boot order of the stick and the disk.

Some experimentation shows that
HDS722020ALA330 RSD HUA
cannot be moved. It exists only within the
Hard Drive list
.

I also note with some surprise that
Hard Drive list
now appears below
USB Floppy/CD
in the boot order.

Perhaps the multiple reboots have reset the BIOS boot order back to its default settings.


Reboot.

Go back into the BIOS / Computer Setup / Boot Order.

Pop-up box:

Boot Order

- EFI Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- USB Hard Drive
- Legacy Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- Hard Drive
--- HDS722020ALA330 RSD HUA
-- Network Controller (IBA GE Slot 00C8 v1363)

F5=Disabled, ESC=Cancel, F10=Accept



Turn Kalkin off.

Remove memory stick and insert it into a different USB port.

Turn Kalkin on again.

Go back into the BIOS / Computer Setup / Boot Order.

Pop-up box:

Boot Order

- EFI Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- USB Hard Drive
- Legacy Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- Hard Drive
--- HDS722020ALA330 RSD HUA
--- USB Hard Drive
-- Network Controller (IBA GE Slot 00C8 v1363)

F5=Disabled, ESC=Cancel, F10=Accept



How odd.

The memory stick now appears under
Hard Drive
as
USB Hard Drive
.

I tested that I could place
USB Hard Drive
above
HDS722020ALA330 RSD HUA
in the boot order, then I moved it back below
HDS722020ALA330 RSD HUA
.

Ok. Well, the boot order is set as I had planned.

Next: Try to boot manually from the memory stick.

Now choose File / Save Changes and Exit.

Hold down the Escape key as Kalkin reboots.


Screen:

Version 2.10.1208. Copyright (C) 2011 American Megatrends, Inc.
16384 MB

Startup Menu
- Continue Startup (Exit)
- System Information
- Change Language
- Diagnostics (F2)
- Boot Menu (F9)
- Computer Setup (F10)
- System Recovery (F11)
- Network Boot (F12)
- Utilities
- Run UEFI Application...

J51 v01.20
HP Z210 Workstation
Press the ESC key for Startup Menu
Startup Menu


Press F9.


Screen:

Please select boot device:

EFI Boot Sources
Legacy Boot Sources
- ATAPI CD/DVD Drive
-- SATA2
- Hard Drive
-- HDS722020ALA330 RSD HUA
-- hp v150w 1100
- IBA GE Slot 00C8 v1363

[up arrow symbol] and [down arrow symbol] to move selection
ENTER to select boot device
ESC to boot using defaults


EFI Boot Sources
is highlighted.

Remember, I'm hoping that because the hard disk
HDS722020ALA330 RSD HUA
is above the memory stick
hp v150w 1100
in the boot order, the Centos installation program will target the hard disk
HDS722020ALA330 RSD HUA
for installation of Centos. However, to start the Centos installation program, I need to boot from the memory stick
hp v150w 1100
, so I'm booting from it manually.

Press Down Arrow until
hp v150w 1100
is highlighted.

Press Enter.


Kalkin arrives at this screen:

Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System



Install or upgrade an existing system
is highlighted.

Press Enter.

[various messages, not recorded here]


Kalkin arrives at this screen:

Welcome to CentOS for x86_64

Choose a Language
What language would you like to use during the installation process?
[...]
English
[...]
[button:] OK

<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen


English
is highlighted.

Press Enter.


Screen:

Keyboard Type
What type of keyboard do you have?
[...]
us
[...]
[buttons:] OK, Back


us
is highlighted.

Press Enter.


Screen:

Installation Method
What type of media contains the installation image?
- Local CD/DVD
- Hard drive
- NFS directory
- URL
[buttons:] OK, Back


Local CD/DVD
is highlighted.

Press Down Arrow.
Hard drive
is now highlighted.

Press Enter.

Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
Directory holding image: ________________
[buttons:] OK, Back


/dev/sda1
is highlighted.

If all has gone according to plan,
/dev/sda1
is now the main 2TB hard disk.


On Aineko, copy the Centos ISO image file to a second memory stick, formatted as MS-DOS (FAT). No other files or directories on the memory stick. The ISO is on the first directory level of the second memory stick.


Insert this memory stick into Kalkin.


On Kalkin, press F2.


Screen:

Driver Disk Source
You have multiple devices which could serve as sources for a driver disk.
Which would you like to use?
- sda
- sdb
- sdc
- sdd
- sde
- sdf
- sdg
- sr0
- sdh
[buttons:] OK, Back


sda
is highlighted.

Press Right Arrow twice.

Back
is now highlighted.

Press Enter.

Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
- /dev/sdh1
Directory holding image: ________________
[buttons:] OK, Back


/dev/sda1
is highlighted.


There's a second option now (/dev/sdh1). I'm going to assume that this is the second memory stick I just plugged in. However, it might be the first memory stick.

Press Down Arrow.
/dev/sdh1
is now highlighted.

Press Enter.

Screen:

Error
An error occured finding the installation image on your hard drive. Please check your images and try again.
[button:] OK


OK
is highlighted.

Press Enter.


Screen:

Error
Device /dev/sdh1 does not appear to contain an installation image.
[button:] OK


OK
is highlighted.

Press Enter.

Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
- /dev/sdh1
Directory holding image: /images/install.img_______
[buttons:] OK, Back


/dev/sda1
is highlighted.

Press Down Arrow.
/dev/sdh1
is now highlighted.

Press Right Arrow. Now the text field "/images/install.img_______" is highlighted.

Edit the text field to be: "/CentOS-6.9-x86_64-minimal.iso_______"

Press Down Arrow.
OK
is now highlighted.


Press Enter.


Screen:

Error
An error occured finding the installation image on your hard drive. Please check your images and try again.
[button:] OK


OK
is highlighted.

Press Enter.


Screen:

Error
Device /dev/sdh1 does not appear to contain an installation image.
[button:] OK


OK
is highlighted.

Press Enter.


Hm. Ok, choose /dev/sda1 as source. Eventually, the installation program won't be able to find the image, and I'll switch to the shell and manually specify the location of the iso as I did before.

Note: I forgot that earlier the second memory stick had to be mounted first before the iso file on it could be accessed.

No errors.


Kalkin arrives at this screen:

CentOS 6
Community ENTerprise Operating System
Back, Next


Next is a button. Back is a greyed-out button.

This is the GUI screen.


Click Next.


Screen:

What type of devices will your installation involve?
- Basic Storage Devices: Installs or upgrades to typical types of storage devices. If you're not sure which option is right for you, this is probably it.
- Specialized Storage Devices: Installs or upgrades to enterprise devices such as Storage Area Networks (SANs). This option will allow you to add FCoEes / iSCSI / zFCP disks and to filter out devices the installer should ignore.
[buttons:] Back, Next


Basic Storage Devices is selected.

Click Next.


Screen:

Warning
Disk sdg contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sdg.
[button:] OK
[buttons:] Back, Next


Click OK.


Screen:

Please name this computer. The hostname identifies the computer on a network.
Hostname: [text field]
[button:] Configure Network
[buttons:] Back, Next


Type "kalkin" into the text field.

Click Next.


Screen:

Please select the nearest city in your time zone:
[Map of the world with dots for cities. New York is named.]
Selected city: New York, America (Eastern (most areas))
[Drop-down list. America/New York is selected.]
[checkbox: ticked] System clock uses UTC
[buttons:] Back, Next


Click the drop-down list and select Europe/London. Pressing Page Down to move through the list is faster than scrolling.

Click Next.


Screen:

The root account is used for administering the system. Enter a password for the root user.
Route Password: [text field]
Confirm: [text field]
[buttons:] Back, Next


Type in a password for the root user into both text fields.

Click Next.


Screen:

Which type of installation would you like?
[radio-button list:]
- Use All Space: Removes all partitions on the selected device(s). This includes partitions created by other operating systems. Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Replace Existing Linux System(s): Removes only Linux partition (created from a previous Linux installation). This does not remove other partitions you may have on your storage device(s) (such as VFAT or FAT32). Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Shrink Current System: Shrinks existing partitions to create free space for the default layout.
- Use Free Space: Retains your current data and partitions and uses only the unpartitioned space on the selected device(s), assuming you have enough free space available.
- Creed Custom Layout: Manually create your own custom layout on the selected device(s) using our partitioning tool.
[checkbox: not ticked] Encrypt system
[checkbox: not ticked] Review and modify partitioning layout
[buttons:] Back, Next


Replace Existing Linux System(s) is selected.

Click Use All Space.

Click Next.


Screen:

Below are the storage devices you've selected to be a part of this installation. Please indicate using the arrows below which devices you'd like to use as data drives (these will not be formatted, only mounted) and which devices you'd like to use as system drives (these may be formatted). Please also indicate which system drive will have the bootloader installed.

[table 1:]
Data Storage Devices (to be mounted only)
- Kingston DataTraveller 2.0 (29613 MB)
- hp v150w (15216 MB)

[table 2: no items]



Hm.

Well, the Kingston device is the second memory stick (looking at it, I see that its manufacturer is Kingston and that it has 32 GB capacity).

The hp device is the first memory stick.

This time, I plugged in the second memory stick earlier in the installation process (before hitting the "Missing ISO 9660 Image" error), which is presumably why I'm seeing this Screen with the tables.

The 2 TB hard disk is not shown.

Perhaps the Centos installation program doesn't use the BIOS boot order to find its target drive. It may just not see the hard disk for some reason.


Hm.

Let's try:
- switch to shell
- explicitly mount hard disk
- switch back to GUI. Click Back then Next.
- see if Centos installation program can now see the hard disk.




Press Ctrl-Alt-F2.


[anaconda root@localhost /]#


[anaconda root@localhost /]# fdisk -l


Disk /dev/loop0: 146 MB, 146558976 bytes
255 heads, 63 sectors/track, 17 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0c30c34e

Disk /dev/sda: 16.0 GB, 15955132416 bytes
64 heads, 32 sectors/track, 15216 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b8b4567

Device Boot Start End Blocks Id System /dev/sda1 * 1 408 417792 17 Hidden HPFS/NTFS


Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdh: 31.1 GB, 31051513856 bytes
255 heads, 63 sectors/track, 3775 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xaac1950c

Device Boot Start End Blocks Id System /dev/sdh1 * 1 3776 30323712 c W95 FAT32 (LBA)



Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes
is the 2 TB hard disk.

But just because an item appears in the output of fdisk doesn't mean it's been mounted.

fdisk shows me that the hard disk is connected, can be seen, and has the device name /dev/sdg.

Hm. There were errors earlier about /dev/sdg.

Here's the error message from earlier:

Warning
Disk sdg contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sdg.
OK
Back, Next


I should have paid more attention to this error when it first appeared and found out what "disk sdg" referred to. Looking back at this log, I see that I could have read fdisk output more carefully the first time (instead of just transcribing it) and noticed that disk /dev/sdg was 2000.4 GB i.e. the hard disk. With some thought, I might have realised that this error message indicated a possible reason why the Centos installation program couldn't install to the hard disk.


[anaconda root@localhost /]# ls -1 /mnt

isodir
runtime
sysimage


[anaconda root@localhost /]# ls -1 /dev

[...]
sda
sda1
sdb
sdc
sdd
sde
sdf
sdg
sdh
sdh1


I note that both sda (the first memory stick) and sdh (the second memory stick) have a single partition (the same name + '1' e.g. sda1), but sdg (the hard disk) does not have any partitions.

[anaconda root@localhost /]# mount /dev/sdg /mnt/hard_disk

mount: mount point /mnt/hard_disk does not exist

[anaconda root@localhost /]# mkdir /mnt/hard_disk


[anaconda root@localhost /]# mount /dev/sdg /mnt/hard_disk

mount: unknown filesystem type 'ddf_raid_member'



Hm. It may be necessary to format the hard disk.

I think this hard disk may have been used as part of a RAID array. The Centos installation program asked about the unusual format but I told it to ignore the problem. This meant that later in the process (when choosing the target drive), the application couldn't see the hard disk. The Centos installation program has no trouble seeing two memory sticks, both formatted as MS-DOS (FAT).

It also seems that if the Centos installation program only sees one disk (in my case, the first memory stick), it will assume that this is the target disk for installation. If it sees two or more disks, it will ask the user which disks to treat as target disks (and which one of those should have the bootloader installed).

The Centos installation program does not choose the first item in the BIOS hard disk boot order as its target.

Hm. By "format the disk", I think I mean two separate steps:
a) write a filesystem to the disk
b) create a single partition that covers the whole filesystem on the disk

The filesystem needs to be recognisable to the Centos installation program (e.g. ext4, which it used earlier). Writing it to the disk will remove the BIOS RAID metadata.


Shut down Kalkin and go to bed.





After some searching and reading, I find:
www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-in-linux
Author: Justin Ellingwood

Excerpt:


How To Partition and Format Storage Devices in Linux


Introduction

Preparing a new disk for use on a Linux system can be quick and easy. There are many tools, filesystem formats, and partitioning schemes that may complicate the process if you have specialized needs, but if you want to get up and running quickly, it's fairly straightforward.

This guide will cover the following process:

- Identifying the new disk on the system
- Creating a single partition that spans the entire drive (most operating systems expect a partition layout, even if only one filesystem is present)
- Formatting the partition with the Ext4 filesystem (the default in most modern Linux distributions)
- Mounting and setting up Auto-mounting of the filesystem at boot

[...]

To partition the drive, we'll use the parted utility. In most cases, this will already be installed on the server.

[...]


Identify the New Disk on the System

Before we set up the drive, we need to be able to properly identify it on the server.

If this is a completely new drive, the easiest way to find it on your server may be to look for the absence of a partitioning scheme. If we ask
parted
to list the partition layout of our disks, it will give us an error for any disks that don't have a valid partition scheme. This can be used to help us identify the new disk:

$ sudo parted -l | grep Error


You should see an
unrecognized disk label
error for the new, unpartitioned disk:

Error: /dev/sda: unrecognised disk label


You can also use the
lsblk
command and look for a disk of the correct size that has no associated partitions:

$ lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk vda 253:0 0 20G 0 disk - vda1 253:1 0 20G 0 part /


Warning:

Remember to check
lsblk
in every session before making changes. The
/dev/sd*
and
/dev/hd*
disk identifiers will not necessarily be consistent between boots, which means there is some danger of partitioning or formatting the wrong disk if you do not verify the disk identifier correctly.

Consider using more persistent disk identifiers like
/dev/disk/by-uuid
,
/dev/disk/by-label
, or
/dev/disk/by-id
. See our introduction to storage concepts and terminology in Linux [link] article for more information.

When you know the name the kernel has assigned your disk, you can partition your drive.

[...]


Choose a Partitioning Standard

To do this, we first need to specify the partitioning standard we wish to use. GPT is the more modern partitioning standard, while the MBR standard offers wider support among operating systems. If you do not have any special requirements, it is probably better to use GPT at this point.

To choose the GPT standard, pass in the disk you identified like this:

$ sudo parted /dev/sda mklabel gpt


If you wish to use the MBR format, type this instead:

$ sudo parted /dev/sda mklabel msdos



Create the New Partition

Once the format is selected, you can create a partition spanning the entire drive by typing:

$ sudo parted -a opt /dev/sda mkpart primary ext4 0% 100%


[...]

Create a Filesystem on the New Partition

Now that we have a partition available, we can format it as an Ext4 filesystem. To do this, pass the partition to the
mkfs.ext4
utility.

We can add a partition label by passing the
-L
flag. Select a name that will help you identify this particular drive:

Note: Make sure you pass in the partition and not the entire disk. In Linux, disks have names like sda, sdb, hda, etc. The partitions on these disks have a number appended to the end. So we would want to use something like sda1 and not sda.

$ sudo mkfs.ext4 -L datapartition /dev/sda1


If you want to change the partition label at a later date, you can use the
e2label
command:

$ sudo e2label /dev/sda1 newlabel


[...]


Mount the New Filesystem

Now, we can mount the filesystem for use.

The Filesystem Hierarchy Standard [link] recommends using
/mnt
or a subdirectory under it for temporarily mounted filesystems. It makes no recommendations on where to mount more permanent storage, so you can choose whichever scheme you'd like. For this tutorial, we'll mount the drive under
/mnt/data
.

Create the directory by typing:

$ sudo mkdir -p /mnt/data



Mounting the Filesystem Temporarily

You can mount the filesystem temporarily by typing:

$ sudo mount -o defaults /dev/sda1 /mnt/data



Mounting the Filesystem Automatically at Boot

If you wish to mount the filesystem automatically each time the server boots, adjust the
/etc/fstab
file:

$ sudo nano /etc/fstab


[...]

We've used the partition label below, but you can see what the lines would look like using the other two identifiers in the commented out lines:

. . .
## Use one of the identifiers you found to reference the correct partition
# /dev/sda1 /mnt/data ext4 defaults 0 2
# UUID=4b313333-a7b5-48c1-a957-d77d637e4fda /mnt/data ext4 defaults 0 2
LABEL=datapartition /mnt/data ext4 defaults 0 2


Note: You can learn about the various fields in the
/etc/fstab
file by typing
man fstab
. For information about the mount options available for a specific filesystem type, check
man [filesystem]
(like
man ext4
). For now, the mount lines above should get you started.

Save and close the file when you are finished.

If you did not mount the filesystem previously, you can now mount it by typing:

$ sudo mount -a



Testing the Mount

After we've mounted the volume, we should check to make sure that the filesystem is accessible.

We can check if the the disk is available in the output from the
df
command:

$ df -h -x tmpfs -x devtmpfs

Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.3G 18G 7% /
/dev/sda1 99G 60M 94G 1% /mnt/data


You should also be able to see a
lost+found
directory within the
/mnt/data
directory, which typically indicates the root of an Ext* filesystem:

$ ls -l /mnt/data

total 16
drwx------ 2 root root 16384 Jun 6 11:10 lost+found


We can also check that the file mounted with read and write capabilities by writing to a test file:

$ echo "success" | sudo tee /mnt/data/test_file


Read the file back just to make sure the write executed correctly:

$ cat /mnt/data/test_file

success


You can remove the file after you have verified that the new filesystem is functioning correctly:

$ sudo rm /mnt/data/test_file



Conclusion

Your new drive should now be partitioned, formatted, mounted, and ready for use. This is the general process you can use turn a raw disk into a filesystem that Linux can use for storage. There are more complex methods of partitioning, formatting, and mounting which may be more appropriate in some cases, but the above is a good starting point for general use.



I note that:
- you must create a partition and format it with a filesystem, not vice versa.
- to always mount a filesystem on boot, specify this action in the
/etc/fstab
file
- a
lost+found
directory within the mountpoint directory typically indicates the root of an Ext* filesystem.
- a new filesystem can be tested by writing and removing a file on it.



Press the power button to boot Kalkin.

Kalkin arrives at this screen:

Welcome to CentOS 6.9!

- Install or upgrade an existing system
- Install system with basic video driver
- Rescue installed system
- Boot from local drive
- Memory test

Press [Tab] to edit options
Automatic boot in 60 seconds...

CentOS 6
Community ENTerprise Operating System



Install or upgrade an existing system
is highlighted.

Press Enter.

[various messages, not recorded here]


Kalkin arrives at this screen:

Welcome to CentOS for x86_64

Choose a Language
What language would you like to use during the installation process?
[...]
English
[...]
[button:] OK

<Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen


English
is highlighted.

Press Enter.


Screen:

Keyboard Type
What type of keyboard do you have?
[...]
us
[...]
[buttons:] OK, Back


us
is highlighted.

Press Enter.


Screen:

Installation Method
What type of media contains the installation image?
- Local CD/DVD
- Hard drive
- NFS directory
- URL
[buttons:] OK, Back


Local CD/DVD
is highlighted.

Press Down Arrow.
Hard drive
is now highlighted.

Press Enter.

Screen:

Select Partition
What partition and directory on that partition holds the installation image for CentOS? If you don't see the disk drive you're using listed here, press F2 to configure additional devices.
- /dev/sda1
- /dev/sdg1
Directory holding image: ________________
[buttons:] OK, Back


/dev/sda1
is highlighted.

/dev/sdg1
appears because the second memory stick is still inserted.

Press Enter.

Kalkin arrives at this screen:

CentOS 6
Community ENTerprise Operating System
Back, Next


Next is a button. Back is a greyed-out button.

This is the GUI screen.

Press Ctrl-Alt-F2.

[anaconda root@localhost /]#


[anaconda root@localhost /]# parted --version

parted (GNU parted) 2.1
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by <http://parted.alioth.debian.org/cgi-bin/trac.cgi/browser/AUTHORS>.


[anaconda root@localhost /]# parted -l

Error: Invalid partition table - recursive partition on /dev/sda.
Ignore/Cancel? i
Model: hp v150w (scsi)
Disk /dev/sda: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags



Model: Kingston DataTraveller (scsi)
Disk /dev/sdg: 31.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags 1 32.8kB 31.1GB 31.1GB primary fat32 boot, lba



Error: /dev/sdh: unrecognized disc label



Note: I'm not using
sudo
because in this shell I'm already running as root.

I note the "Error: Invalid partition table - recursive partition on /dev/sda." error. It appears that this refers to the first memory stick. I'm making a note of this error but I'm not going to follow it up unless necessary.

After the reboot, /dev/sdg appears to refer to the second memory stick.

I will therefore assume that /dev/sdh is now the reference for the hard disk.

Confirmed:
fdisk -l
shows that the
/dev/sdh
device has 2000.4 GB capacity.


[anaconda root@localhost /]# lsblk

sh: lsblk: command not found



Let's create a partition on the hard disk.

[anaconda root@localhost /]# parted /dev/sdh mklabel msdos

Information: You may need to update /etc/fstab.


Let's see what effect that had.

[anaconda root@localhost /]# parted -l

Error: Invalid partition table - recursive partition on /dev/sda.
Ignore/Cancel? i
Model: hp v150w (scsi)
Disk /dev/sda: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags



Model: Kingston DataTraveller (scsi)
Disk /dev/sdg: 31.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags 1 32.8kB 31.1GB 31.1GB primary fat32 boot, lba



Model: ATA HDS722020ALA330 (scsi)
Disk /dev/sdh: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags



Good.
/dev/sdh
now has a recognisable disc label. The disk name (HDS722020ALA330) is the same as the name I saw earlier in the BIOS Boot Menu.

Note: ATA stands for Advanced Technology Attachment. scsi stands for Small Computer Systems Interface.


[anaconda root@localhost /]# parted -a opt /dev/sdh mkpart primary ext4 0% 100%

Information: You may need to update /etc/fstab.



Let's confirm the creation of the partition with
fdisk
.


[anaconda root@localhost /]# fdisk -l


Disk /dev/loop0: 146 MB, 146558976 bytes
255 heads, 63 sectors/track, 17 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0c30c34e

Disk /dev/sda: 16.0 GB, 15955132416 bytes
64 heads, 32 sectors/track, 15216 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b8b4567

Device Boot Start End Blocks Id System /dev/sda1 * 1 408 417792 17 Hidden HPFS/NTFS


Disk /dev/sdg: 31.1 GB, 31051513856 bytes
255 heads, 63 sectors/track, 3775 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xaac1950c

Device Boot Start End Blocks Id System /dev/sdg1 * 1 3776 30323712 c W95 FAT32 (LBA)


Disk /dev/sdh: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System /dev/sdh1 1 243202 1953513472 83 Linux



I see a partition (indicated by the addition of a numeral) on the hard disk:
/dev/sdh1



Now I'll try to create a filesystem on the partition.


[anaconda root@localhost /]# mkfs.ext4 --version

mkfs.ext4: invalid option -- '-'
Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-f fragment-size]
[-i bytes-per-inode] [-I inode-size] [-J journal-options]
[-G meta group size] [-N number-of-inodes]
[-m reserved-blocks-percentage] [-o creator-os]
[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
[-O feature[,..]] [-r fs-revision] [-E extended-option[,...]]
[-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]

[anaconda root@localhost /]# mkfs.ext4 -L mainpartition /dev/sdh1

mke2fs 1.41.12 (17-May-2010)
Filesystem label=mainpartition
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122101760 inodes, 488378368 blocks
24418918 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14905 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605630, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i override.




I'd like to be able to view filesystem labels.

Google "linux partition filesystems".


Excerpt from:
askubuntu.com/questions/309047/how-do-i-find-out-what-filesystem-my-partitions-are-using

Q:

How do I find out what filesystem my partitions are using?

edited Jan 4 '17 at 17:01
zahypeti

asked Jun 17 '13 at 0:42
Mimzy


A:

A simple and good command

sudo blkid


It will list something like this:

/dev/sda1: LABEL="Windows" UUID="FA50DCB150DC763B" TYPE="ntfs"
/dev/sda5: LABEL="40GBTWO" UUID="00A0CE7EA0CE7A24" TYPE="ntfs"
/dev/sda6: UUID="7550252c-3da7-4cd9-8da3-71e9ba38e74a" TYPE="ext4"
/dev/sda7: UUID="088fd084-a011-4896-aa93-c0caaad60620" TYPE="swap"


Where
/dev/sda1
is the partition,
LABEL
is the given name to the partition,
UUID
is the Unique ID of the partiton which is quite useful to mount the hardisk using
/etc/fstab
, and
TYPE
is the file system.

answered Oct 25 '13 at 23:51
Saurav Kumar



[anaconda root@localhost /]# blkid

/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="CentOS_6.9_Final" TYPE="iso9660"
/dev/sdg1: LABEL="KINGSTON" UUID="7195-020C" TYPE="vfat"
/dev/sdh1: LABEL="mainpartition" UUID="04fad691-0c68-49d9-ad72-5e6185954e25" TYPE="ext4"



Good. This also shows the filesystem types, as well as their labels.


Let's make a mountpoint and mount the new filesystem temporarily.

[anaconda root@localhost /]# ls -1 /mnt

isodir
runtime

[anaconda root@localhost /]# mkdir -p /mnt/test


[anaconda root@localhost /]# ls -1 /mnt

isodir
runtime
test

[anaconda root@localhost /]# mount -o defaults /dev/sdh1 /mnt/test


[anaconda root@localhost /]# ls -1 /mnt/test

lost+found

[anaconda root@localhost /]# df -h

Filesystem Size Used Avail Use% Mounted on /dev 7.9G 228K 7.9G 1% /dev none 7.9G 140M 7.7G 2% /tmp /dev/loop0 140M 140M 0 100% /mnt/runtime /dev/sdh1 1.8T 68M 1.7T 1% /mnt/test


I can see a
lost+found
within the mountpoint directory.

The
df
lists the filesystems that are currently mounted. It can see the new filesystem, located at /dev/sdh1, mounted at /mnt/test, 1.8T (~= 2000 GB) capacity.


Let's test the mounted filesystem by writing a file to it.

$ echo "success" > /mnt/test/foo.txt


$ cat /mnt/test/foo.txt

success

$ ls -1 /mnt/test

foo.txt
lost+found

$ rm /mnt/test/foo.txt



Looks fine.


I'm not going to mount the filesystem permanently because this operating system is a temporary one booted from the installation memory stick. Changes to
/etc/fstab
won't be preserved. Also, my goal is to install the operating system to this filesystem. When I have done so, there will be a new
/etc/fstab
file there. I think the installation process will probably set the main filesystem to be mounted automatically on boot.



I'll try the Centos installation process again.


Press Ctrl-Alt-F6.


Screen:

CentOS 6
Community ENTerprise Operating System
[buttons:] Back, Next


Next is a button. Back is a greyed-out button.

This is the GUI screen.

Click Next.


Screen:

What type of devices will your installation involve?
- Basic Storage Devices: Installs or upgrades to typical types of storage devices. If you're not sure which option is right for you, this is probably it.
- Specialized Storage Devices: Installs or upgrades to enterprise devices such as Storage Area Networks (SANs). This option will allow you to add FCoEes / iSCSI / zFCP disks and to filter out devices the installer should ignore.
[buttons:] Back, Next


Basic Storage Devices is selected.

Click Next.


Screen:

Warning
Disk sdg contains BIOS RAID metadata, but is not part of any recognized BIOS RAID sets. Ignoring disk sdg.
[button:] OK
[buttons:] Back, Next


Click OK.


Screen:

Please name this computer. The hostname identifies the computer on a network.
Hostname: [text field]
[button:] Configure Network
[buttons:] Back, Next


Type "kalkin" into the text field.

Click Next.


Screen:

Please select the nearest city in your time zone:
[Map of the world with dots for cities. New York is named.]
Selected city: New York, America (Eastern (most areas))
[Drop-down list. America/New York is selected.]
[checkbox: ticked] System clock uses UTC
[buttons:] Back, Next


Click the drop-down list and select Europe/London. Pressing Page Down to move through the list is faster than scrolling.

Click Next.


Screen:

The root account is used for administering the system. Enter a password for the root user.
Route Password: [text field]
Confirm: [text field]
[buttons:] Back, Next


Type in a password for the root user into both text fields.

Click Next.


Screen:

Which type of installation would you like?
[radio-button list:]
- Use All Space: Removes all partitions on the selected device(s). This includes partitions created by other operating systems. Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Replace Existing Linux System(s): Removes only Linux partition (created from a previous Linux installation). This does not remove other partitions you may have on your storage device(s) (such as VFAT or FAT32). Tip: This option will remove data from the selected device(s). Make sure you have backups.
- Shrink Current System: Shrinks existing partitions to create free space for the default layout.
- Use Free Space: Retains your current data and partitions and uses only the unpartitioned space on the selected device(s), assuming you have enough free space available.
- Creed Custom Layout: Manually create your own custom layout on the selected device(s) using our partitioning tool.
[checkbox: not ticked] Encrypt system
[checkbox: not ticked] Review and modify partitioning layout
[buttons:] Back, Next


Replace Existing Linux System(s) is selected.

Click Use All Space.

Click Next.

Screen:

Below are the storage devices you've selected to be a part of this installation. Please indicate using the arrows below which devices you'd like to use as data drives (these will not be formatted, only mounted) and which devices you'd like to use as system drives (these may be formatted). Please also indicate which system drive will have the bootloader installed.

[table 1:]
Data Storage Devices (to be mounted only)
- ATA HDS722020ALA330 (1907729 MB)
- Kingston DataTraveller 2.0 (29613 MB)
- hp v150w (15216 MB)

[table 2: no items]
Install Target Devices

[buttons:] Back, Next


Great. The hard disk now appears among the options.

In table 1, click the line containing the model "ATA HDS722020ALA330". It becomes highlighted.

Click the right arrow button line between the two tables.

The item moves to table 2.

Click the radio button in table 2 in the column "Boot Loader" for the item.

Click Next.


Pop-up dialogue box:
Writing storage configuration to disk

The partitioning options you have selected will now be written to disk. Any data on deleted or reformatted partitions will be lost.
[buttons:] Go back, Write changes to disk


Click Write changes to disk.


Pop-up dialogue box:
Storage Activation Failed

Details:
- Could not commit to disk /dev/sdh
[buttons:] File Bug, Exit Installer



[clicked through File Bug menus, arrived somewhere without having documented steps]


Perhaps the fact that the filesystem on the target device was mounted within the shell caused a problem with the installation process.


Reboot.

Kalkin arrives at a blank screen.

Reboot. Hold Escape as Kalkin boots.

Choose Boot Menu.

Ah. The Boot Menu lists the hard disk (HDS722020ALA330 RSD HUA) ahead of the hp memory stick.

Choose the hp memory stick and boot.

Proceed as before through the first questions and switch to the shell.

Due to the reboot, the filesystem on the hard disk partition will not be mounted anymore.

Proceed through the GUI as before.

Pop-up dialogue box:
Writing storage configuration to disk

The partitioning options you have selected will now be written to disk. Any data on deleted or reformatted partitions will be lost.
[buttons:] Go back, Write changes to disk


Click Write changes to disk.

[various messages not recorded here]

It's installing 205 packages.

Installation was fast (approximately 1-2 minutes).

Screen:

Congratulations, your CentOS installation is complete.

Please reboot to use the installed system. Note that updates may be available to ensure the proper functioning of your system and installation of these updates is recommended after the reboot.

[button:] Reboot


Click Reboot.


Since the hard disk is above the hp memory stick in the boot order, the BIOS should automatically boot from the hard disk.


Kalkin arrives at this screen:

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

kalkin login:


Log in as
root
, using the root password specified earlier.

kalkin login: root
Password:

[root@kalkin ~]# echo "hello world"

hello world

[root@kalkin ~]# df -h

Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_kalkin-lv_root 50G 687M 46G 2% / tmpfs 7.8G 0 7.8G 2% /dev/shm /dev/sda1 477M 28M 235M 7% /boot /dev/mapper/vg_kalkin-lv_home 1.8T 68M 1.7T 1% /home



It appears that /dev/sda1 now refers to a boot partition on the the hard disk. /dev/sda is therefore the hard disk device name.

Confirmed via
fdisk -l
, which also shows the 16 GB hp memory stick as /dev/sdb and the 32 GB Kingston memory stick as /dev/sdh.


[root@kalkin ~]# pwd

/root

[root@kalkin ~]# ls -1

anaconda-ks.cfg
install.log
install.log.syslog

[root@kalkin ~]# ls /home

lost+found

[root@kalkin ~]# ls -1 /

bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
sbin
selinux
srv
sys
tmp
usr
var




Looks good.

[root@kalkin ~]# halt


Kalkin is now off.

Remove both memory sticks.

The hard disk is now the only attached bootable device.

Press the power button to boot Kalkin.


Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

Initializing and establishing link...



Screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

PXE-E61: Media test failure, check cable
PXE-M0F: Exiting Intel Boot Agent.



Screen:

Non-System disk or disk error
replace and strike any key when ready



Press the power button to turn Kalkin off.

Press the power button to boot Kalkin.



Screen:

Press any key to enter the menu

Booting CentOS 6 (2.6.32-696.e16.x86_64) in 3 seconds...



[A booting screen is displayed]


Screen:

CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.x86_64 on an x86_64

kalkin login:



Hm. I don't why the reboot helped.

Note: The screen that displays "Booting CentOS 6 (2.6.32-696.e16.x86_64) in 3 seconds..." is presumably the Grub menu bypass screen.

Log in as root.

[root@kalkin ~]# echo "hello world" > foo.txt


[root@kalkin ~]# cat foo.txt

hello world

[root@kalkin ~]# ls -1

anaconda-ks.cfg
foo.txt
install.log
install.log.syslog

[root@kalkin ~]# rm foo.txt

rm: remove regular file 'foo.txt'? y

[root@kalkin ~]# ls -1

anaconda-ks.cfg
install.log
install.log.syslog




That's enough for today.

[root@kalkin ~]# halt


Kalkin is off.



Hm. I booted Kalkin again and I arrived at this screen:

Booting from local disk...

Intel(R) Boot Agent GE v1.3.63
Copyright (C) 1997-2010, Intel Corporation

Intel(R) Boot Agent PXE Base Code (PXE-2.1 build 089)
Copyright (C) 1997-2010, Intel Corporation

PXE-E61: Media test failure, check cable
PXE-M0F: Exiting Intel Boot Agent.


I rebooted and it booted Centos again.

I think something's not quite right with the boot order.


Google "PXE-E61: Media test failure, check cable".

First result:
www.intel.co.uk/content/www/uk/en/support/articles/000005740/boards-and-kits/desktop-boards.html

Excerpt:

PXE-E61 Media Test Failure Error for Intel® Desktop Boards

Last Reviewed: 01-Nov-2017
Article ID: 000005740

What are you seeing?

The following errors display when your Intel® Desktop Board starts:

- PXE-E61: Media test failure, check cable.
- PXE-M0F: Exiting Intel Boot Agent.

Why are you seeing it?

PXE (Preboot eXecution Environment) is a boot environment that allows the Intel Desktop Board to boot up using a network interface, instead of booting from an installed hard drive. You can enable or disable PXE boot in the BIOS.

If PXE Boot is enabled in BIOS, the PXE-E61 and PXE-M0F errors can happen when both of these are true:

- A bootable hard drive is not detected.
- A network cable is not connected to the Intel Desktop Board.



I think the BIOS is trying to boot from the network connection, but there is no network cable connected.


Turn Kalkin on. Hold Escape key as it boots.

Choose Computer Setup.

Choose Storage / Boot Order.


Pop-up box:

Boot Order

- EFI Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- USB Hard Drive
- Legacy Boot Sources
-- ATAPI CD/DVD Drive
-- USB Floppy/CD
-- Hard Drive
-- Network Controller (IBA GE Slot 00C8 v1363)

F5=Disabled, ESC=Cancel, F10=Accept



Under Legacy Boot Sources, move Hard Drive above USB Floppy/CD. I'm simply guessing that changing this back might help.

Press F10 to Accept.

Choose File / Save Changes and Exit.

Centos boots.

Reboot.

Centos boots.

Reboot.

Centos boots.

Reboot.

Centos boots.


Hm. I don't know why that worked.

Perhaps the error "PXE-E61: Media test failure, check cable" is also produced from trying to boot from the "USB Floppy/CD" option.


There's an unanswered question left from earlier in the log:

What is a "second stage boot loader"?


Excerpt from:
access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/s1-grub-whatis

E.2. GRUB

The GNU GRand Unified Boot loader (GRUB) is a program which enables the selection of the installed operating system or kernel to be loaded at system boot time. It also allows the user to pass arguments to the kernel.

E.2.1. GRUB and the Boot Process on BIOS-based x86 Systems

This section describes the specific role GRUB plays when booting a BIOS-based x86 system. For a look at the overall boot process, refer to Section F.2, "A Detailed Look at the Boot Process" [link].

GRUB loads itself into memory in the following stages:

1. The Stage 1 or primary boot loader is read into memory by the BIOS from the MBR.

For more on the system BIOS and the MBR, refer to Section F.2.1.1, "BIOS-based x86 Systems" [link].

The primary boot loader exists on less than 512 bytes of disk space within the MBR and is capable of loading either the Stage 1.5 or Stage 2 boot loader.

BIOS cannot read partition tables or file systems. It initializes the hardware, reads the MBR, then depends entirely on the stage 1 bootloader to continue the boot process.

2. The Stage 1.5 boot loader is read into memory by the Stage 1 boot loader, if necessary.

Some hardware requires an intermediate step to get to the Stage 2 boot loader. This is sometimes true when the
/boot/
partition is above the 1024 cylinder head of the hard drive or when using LBA mode. The Stage 1.5 boot loader is found either on the
/boot/
partition or on a small part of the MBR and the
/boot/
partition.

3. The Stage 2 or secondary boot loader is read into memory.

The secondary boot loader displays the GRUB menu and command environment. This interface allows the user to select which kernel or operating system to boot, pass arguments to the kernel, or look at system parameters.

4. The secondary boot loader reads the operating system or kernel as well as the contents of
/boot/sysroot/
into memory.

Once GRUB determines which operating system or kernel to start, it loads it into memory and transfers control of the machine to that operating system.

The method used to boot Linux is called direct loading because the boot loader loads the operating system directly. There is no intermediary between the boot loader and the kernel.



Hm. Ok.

The main point of the boot process appears to be to get the operating system's main() loop loaded into RAM and get the CPU to target this loop. Various layers exist between powering on the motherboard and arriving at the main loop of the operating system.

I think the boot sequence works roughly like this:
1. Power on the motherboard.
2. Motherboard is constructed such that the CPU will begin execution of the BIOS (stored in a ROM chip on motherboard).
3. BIOS will attempt to boot from each available device in the order specified in the BIOS boot sequence list.
4. BIOS loads bootloader (e.g. Grub) into system memory (RAM). Bootloader is stored on the bootable device, not on the motherboard.
5. Bootloader loads operating system (e.g. Centos) into RAM. Bootloader may have multiple stages.
6. Bootloader turns over control to the OS main() loop and ceases to be used.


Note: The operating system still needs the BIOS during its operation.

Excerpt from:
Exploring the BIOS boot options on Kalkin

The BIOS also is used after the computer has booted up. It acts as an intermediary between the CPU and the I/O (input/output) devices. Because of the BIOS, your programs and your operating system don't have to know exact details (like hardware addresses) about the I/O devices attached to your PC. When device details change, only the BIOS needs to be updated.



Well, after many attempts, I have succeeded in installing Centos 6.9 Minimal onto Kalkin.

I now have a working understanding of the boot process.

I'll write up a summary of the project and place it at the top of this log.






[start of notes]


Changes from the original text:
- I have not always preserved the format of any excerpts from webpages on other sites (e.g. not preserving the original bold/italic styles, changing the list structures, not preserving hyperlinks).
- I have not always preserved the format of any computer output (e.g. from running bash commands). Examples: Adding/removing newlines in order to make a sequence of commands easier to read, using hyphens for lists and sublists instead of indentation, breaking wide tables into consecutive sections.

[end of notes]



[start of footnotes]


[0]
Aineko is the name of an increasingly intelligent robotic cat in the book Accelerando by Charles Stross.

[return to main text]

[end of footnotes]