3. EMC Education Services written by joseph.hoey@emc.com 3
Document Revision History
Rev # File Name Date
1.0 OS Bootcamp Workshop v1.0 - MR-5CN-GSAPICSOS.docx 1/9/2013
1.1 OS Bootcamp Workshop v1.1 - MR-5CN-GSAPICSOS.docx 2/21/2013
1.2 OS Bootcamp Workshop v1.2 - MR-5CN-GSAPICSOS.docx 4/1/2013
4. EMC Education Services written by joseph.hoey@emc.com 4
Table of Contents
COPYRIGHT ................................................................................................................................. 2
DOCUMENT REVISION HISTORY............................................................................................ 3
PREFACE: HISTORY OF UNIX.................................................................................................. 5
PREFACE: HISTORY OF BSD .................................................................................................... 6
PREFACE: HISTORY OF LINUX ............................................................................................... 7
PREFACE: COMMAND STRUCTURE....................................................................................... 8
LAB EXERCISE 1: NAVIGATION ............................................................................................ 12
LAB 1: PART 1 – THE MAN & METACHARACTERS .......................................................................13
LAB 1: PART 2 – PROCESSES – PS, VMSTAT, TOP, UPTIME, KILL, AND DSMEG ...............................14
LAB 1: PART 3 – LS, LN, AND FILE SYSTEM STRUCTURE ...............................................................18
LAB 1: PART 4 – PWD AND HOME .................................................................................................21
LAB 1: PART 5 – CD, MKDIR, RMDIR, AND HISTORY ......................................................................22
LAB 1: PART 6 – PROMPT USING PS1 ...........................................................................................25
LAB 1: PART 7 – IDENTITY – WHO, WHOAMI, ID, UNAME, ARCH, AND HOSTNAME ........................27
LAB EXERCISE 2: FILE AND DIRECTORY COMMANDS ................................................... 30
LAB 2: PART 1 - FILE COMMANDS – MORE, TOUCH, CP, CAT, MV, AND RM....................................31
LAB 2: PART 2 – TEXT EDITOR - VI................................................................................................35
LAB 2: PART 3 – PERMISSIONS - CHMOD.......................................................................................38
LAB 2: PART 4 - FILE PACKAGING - TAR AND ZIP .........................................................................41
LAB EXERCISE 3: FINDING THINGS WITH GREP, WHEREIS, AND FIND..................... 44
LAB 3: PART 1 – FIND COMMAND .................................................................................................45
LAB 3: PART 2 – WHEREIS COMMAND ..........................................................................................46
LAB 3: PART 3 – GREP COMMAND ................................................................................................47
LAB EXERCISE 4: NETWORKING......................................................................................... 49
LAB 4: PART 1 - NETWORKING – IFCONFIG, PING, AND TRACEROUTE............................................50
LAB 4: PART 2 – REMOTE ACCESS – SSH, FTP, SCP, AND RSYNC ....................................................51
LAB 4: PART 3 – MOVING DATA REMOTELY.................................................................................52
LAB EXERCISE 5: LOCAL STORAGE AND FILE SYSTEMS.............................................. 56
LAB 5: PART 1 – FILE SYSTEM – FDISK, CFDISK, MKFS, MOUNT, AND DF ......................................57
LAB 5: PART 2 – LVM – LVMDISKSCAN, PVSCAN, PVDISPLAY, AND PVCREATE............................61
LAB 5: PART 3 – VOLUME GROUPS – VGCREATE, VGEXTEND, VGEXPORT, AND VGIMPORT..........63
LAB 5: PART 3 – LOGICAL VOLUMES – LVCREATE, LVDISPLAY, AND LVEXTEND .........................66
LAB EXERCISE 6: NETWORKED STORAGE ....................................................................... 70
LAB 6: PART 1 – FILE LEVEL - NFS & CIFS .................................................................................71
LAB 6: PART 2 – BLOCK LEVEL USING FC AND FCOE ................................................................73
LAB 6: PART 3 – BLOCK LEVEL USING ISCSI ................................................................................75
SUGGESTIONS FOR FURTHER STUDY ................................................................................. 78
END OF WORKSHOP .......................................................................................................................79
5. EMC Education Services written by joseph.hoey@emc.com 5
Preface: History of UNIX
In the 1960s Ken Thompson of Bell Labs had access to M.I.T’s early time-sharing operating system Multics. Ken
wrote simulations for the new file and paging system on it. He also programmed a game called Space Travel on a DEC
PDP-7. On this PDP-7, a team of Bell Labs researchers developed a hierarchical file system, the concepts of computer
processes and device files, a command-line interpreter, and some small utility programs. In 1970, Peter Neumann coined
the project name Unics (UNiplexed Information and Computing Service) as a pun on Multics, (Multiplexed Information
and Computer Services). Unics could eventually support multiple simultaneous users, and it was renamed UNIX.
When Bell Labs Computer Science Research Group wanted to use UNIX on a PDP-11/20 machine, this led to
financial support from Bell. Bell Labs used this initial text processing system, consisting of UNIX, roff, and the editor, for
text processing of patent applications. Roff soon evolved into troff, the first electronic publishing program with a full
typesetting capability. The UNIX Programmer's Manual was published on 3 November 1971. Versions of the UNIX
system were determined by editions of its user manuals. For example, "Fifth Edition UNIX" and "UNIX Version 5" have
both been used to designate the same version.
AT&T made UNIX available to universities and commercial firms, as well as the United States government,
under licenses. The licenses included all source code including the machine-dependent parts of the kernel, which were
written in PDP-11 assembly language. Copies of the annotated UNIX kernel sources circulated widely in the late 1970s
this led to a plethora of different UNIX versions both inside and outside Bell Labs. AT&T licensed UNIX System III,
based largely on Version 7, for commercial use, the first version launching in 1982. AT&T continued to issue licenses for
older UNIX versions. To end the confusion between all its differing internal versions, AT&T combined them into UNIX
System V.
Bell Labs released its’ final version on UNIX in 1989 as v10. A new project was start to build on those ideas
learned it was called Plan 9. It was developed primarily for research purposes as the successor to UNIX by the Computing
Sciences Research Center at Bell Labs between the mid-1980s and 2002. Plan 9 continues to be used and developed by
operating system researchers and hobbyists.
Other companies began to offer commercial versions of the UNIX System for their own mini-computers and
workstations. AT&T licensed many of these new UNIX flavors developed from UNIX System V. There are over 40
different flavors of UNIX; here are the most significant;
Microsoft announced Xenix UNIX for Z8000 CPU in 1980 and then Intel 8086, (merged into SCO 1987)
SunOS (Solaris) was created in 1982 to run on Motorola 68000, Sun386i, and now the Sun SPARC.
o Sun released OpenSolaris in 2008, but Oracle closed it (now continued on as OpenIndiana)
Santa Cruz Operation (SCO) ported to the Intel 8086 in 1983 (OpenServer v6 was the final release in 2005).
HP-UX was released in 1984 for Motorola 68000, HP 9000 processors, and now the Intel IA64.
DG/UX (Data General UNIX) was built in 1985 for both Motorola 68000 and then Intel x86
o DG was purchased by EMC in 1999 and all production of DG/UX ended by 2001
IBM introduced AIX in 1986 to run the IBM 6150 RT workstation and now the PowerPC processors.
Minix was created in 1987 for a variety of CPUs and the source code was made freely available for universities.
Bell Labs’ final version of UNIX V10 was released in 1989
o Plan 9 replaced UNIX in 1992 (Plan 9 v4 was released in 2002)
6. EMC Education Services written by joseph.hoey@emc.com 6
Preface: History of BSD
Berkeley Software Distribution (BSD, sometimes called Berkeley Unix) is a UNIX operating system derivative.
BSD has been considered a branch of UNIX—"BSD UNIX", because it shared the initial codebases and design with the
original AT&T UNIX Sixth Edition operating system. Berkeley Software Distribution (1BSD), which was released in
March 1978. 1BSD was an add-on to UNIX rather than a complete operating system in its own right.
Defense Advanced Research Projects Agency's (DARPA) decision to fund Berkeley University of California's
Computer Systems Research Group (CSRG), which would develop a standard UNIX platform for future DARPA research
in the VLSI Project (state of the art in microprocessor design). CSRG released 4BSD in October 1980.
The final release from Berkeley was 1995's 4.4BSD-Lite Release 2, after which the CSRG was dissolved and
development of BSD at Berkeley ceased. Since then, several variants based directly or indirectly on 4.4BSD-Lite (such as
FreeBSD, NetBSD, OpenBSD and DragonFly BSD) have been maintained.
In addition, the permissive nature of the BSD license has allowed many other operating systems, both free and
proprietary, to incorporate BSD code. For example, Microsoft Windows has used BSD-derived code in its implementation
of TCP/IP and bundles recompiled versions of BSD's command-line networking tools since Windows 2000. Also Darwin,
the system on which Apple's Mac OS X is built, is a derivative of 4.4BSD-Lite2 and FreeBSD. Various commercial
UNIX operating systems, such as Solaris, also contain varying amounts of BSD code.
BSD code remains actively developed and widely used today. This can be attributed to the ease with which it could
be licensed. BSD is even the basis for many embedded devices like iPhones, iPads, network switches, and even Mac OS
X. Here are the most popular variants of BSD;
FreeBSD derivatives -> DragonFly BSD, PC-BSD, MacOS X and iOS
NetBSD
OpenBSD
EMC Isilon OneFS
NetApp's ONTAP
Juniper Networks JunOS
F5 Networks BIGIP
7. EMC Education Services written by joseph.hoey@emc.com 7
Preface: History of Linux
In 1991 while attending the University of Helsinki, Torvalds became curious about operating systems and
frustrated by the COSS licensing of MINIX, which limited it to educational use only. He began to work on his own
operating system which eventually became the Linux kernel. Torvalds began the development of the Linux kernel on
MINIX, and applications written for MINIX were also used on Linux. GNU applications also replaced all MINIX
components, because it was advantageous to use the freely available code from the GNU project. Linux was originally
developed as a free operating system for Intel x86-based personal computers. It has since been ported to more computer
hardware platforms than any other operating system. It is a leading operating system on servers and other big iron systems
such as mainframe computers and supercomputers: more than 90% of today's 500 fastest supercomputers run some variant
of Linux. Linux also runs on a variety embedded systems (like; routers, storage devices, cell phones, cameras, DVRs,
industrial control systems, televisions, game consoles, and even refrigerators). The Android system in wide use on mobile
devices is built on the Linux kernel.
The development of Linux is one of the most prominent examples of free and open source software collaboration:
the underlying source code may be used, modified, and distributed—commercially or non-commercially—by anyone
under licenses such as the GNU General Public License. Typically Linux is packaged in a format known as a Linux
distribution for desktop and server use. Some popular mainstream Linux distributions include Debian (and its derivatives
such as Ubuntu and Linux Mint), Red Hat Enterprise Linux (and its derivatives such as Fedora and CentOS),
Mandriva/Mageia, OpenSUSE, and Arch Linux. Linux distributions include the Linux kernel, supporting utilities and
libraries and usually a large amount of application software to fulfill the distribution's intended use.
A distribution oriented toward desktop use will typically include the X Window System and an accompanying
desktop environment such as GNOME or KDE Plasma. Some such distributions may include a less resource intensive
desktop such as LXDE or Xfce for use on older or less powerful computers. A distribution intended to run as a server may
omit all graphical environments from the standard install and instead include other software such as the Apache HTTP
Server and an SSH server such as OpenSSH. Because Linux is freely redistributable, anyone may create a distribution for
any intended use. Applications commonly used with desktop Linux systems include the Mozilla Firefox web browser, the
LibreOffice office application suite, and the GIMP image editor.
Now there are over 600 different Linux distros! The most popular today are;
Red Hat derivatives –> Fedora, RHEL, CentOS, Oracle Linux, Scientific Linux, and Mandrake
Debian derivatives –> Ubuntu, Mint, Corel, Knoppix, and Zorin
MCC Interim derivatives –> Slackware, SUSE , and SunJDS
CRUX derivative –> Arch
Gentoo
8. EMC Education Services written by joseph.hoey@emc.com 8
Preface: Command Structure
Kernel
In computing, the kernel is the main component of most computer operating systems; it is a bridge between
applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the
system's resources (the communication between hardware and software components).[1] Usually, as a basic component of
an operating system, a kernel can provide the lowest-level abstraction layer for the resources (especially processors and
I/O devices) that application software must control to perform its function. It typically makes these facilities available to
application processes through inter-process communication mechanisms and system calls.
Operating system tasks are done differently by different kernels, depending on their design and implementation.
While monolithic kernels execute all the operating system code in the same address space to increase the performance of
the system, microkernels run most of the operating system services in user space as servers, aiming to improve
maintainability and modularity of the operating system. A range of possibilities exists between these two extremes.
The kernel, being the core of the UNIX system, is loaded at system start up (boot). The kernel is a memory
resident control program that manages the entire resources of the system. The kernel presents resources to you and every
other user as a coherent system. The kernel provides service to user applications such as device management, examples;
Managing the machine's memory and allocating it to each process.
Scheduling the CPU so that the work of each user is carried out as efficiently as is possible.
accomplishing the transfer of data from one part of the machine to another
interpreting and executing instructions from the shell
enforcing file access permissions
9. EMC Education Services written by joseph.hoey@emc.com 9
Shell - Whenever you login to a UNIX system you are placed in a shell program. The shell is a command interpreter; it
takes each command and passes it to the operating system kernel to be acted upon. Each shell also includes its own
programming language. Command files, called "shell scripts" are used to accomplish a series of tasks.
A shell is software that provides an interface for users of an operating system to access the services of a kernel.
However, the term is also applied very loosely to applications and may include any software that is "built around" a
particular component, such as web browsers and email clients that are "shells" for HTML rendering engines. The name
shell originates from shells being an outer layer of interface between the user and the internals of the operating system
(the kernel).
Operating system shells generally fall into one of two categories: command-line and graphical. Command-line
shells provide a command-line interface (CLI) to the operating system, while graphical shells like the Windows Shell
provide a graphical user interface (GUI). In either category the primary purpose of the shell is to invoke or "launch"
another program; however, shells frequently have additional capabilities such as viewing the contents of directories.
The relative merits of CLI- and GUI-based shells are often debated. CLI proponents claim that certain operations
can be performed much faster under CLI shells than under GUI shells (such as moving files, for example). However, GUI
proponents advocate the comparative usability and simplicity of GUI shells. The best choice is often determined by the
way in which a computer will be used. On a server mainly used for data transfers and processing with expert
administration, a CLI is likely to be the best choice. However, a GUI would be more appropriate for a computer to be used
for image or video editing and the development of the above data.
In expert systems, a shell is a piece of software that is an "empty" expert system without the knowledge base for
any particular application.
The most influential UNIX shells have been the Bourne shell and the C shell. The Bourne shell, sh, was written
by Stephen Bourne at AT&T as the original UNIX command line interpreter; it introduced the basic features common to
all the UNIX shells, including piping, here documents, command substitution, variables, control structures for condition-
testing and looping and filename wildcarding.
The most commonly available shells are;
C shell (csh): Written for BSD in 1978
Almquist shell (ash): Written as a BSD-licensed replacement for the Bourne Shell
Debian Almquist shell (dash): A modern replacement for ash in Ubuntu and Debian.
Bourne shell (sh) (RedHat default)
Bourne Again Shell (bash)
Korn shell (ksh) - (all POSIX commands)
BusyBox
10. EMC Education Services written by joseph.hoey@emc.com 10
Runlevel - Refers to a mode of operation in one of the computer operating systems that implement Unix System V-style
initialization. Each runlevel designates a different system configuration and allows access to a different combination of
processes. A good sysadmin would strive to have the system running at the lowest possible runlevel and still be able to
perform its’ role, here by minimizing the number unnecessary services running.
Seven runlevels exist, numbered from zero to six; though up to ten, from zero to nine may be used. S is
sometimes used as a synonym for one of the levels. Only one "runlevel" is executed on boot up - run levels are not
executed sequentially, i.e. either runlevel 2 OR 3 OR 4 is executed, not 2 then 3 then 4.
"Runlevel" defines the state of the machine after boot. Different runlevels are typically assigned to:
single-user mode
multi-user mode without network services started
multi-user mode with network services started
system shutdown
system reboot[Reboot]
The exact setup of these configurations will vary from OS to OS and from one Linux distribution to another. For
example, runlevel 4 might be multi-user, GUI, no-server on one distribution, and nothing on another. Note the difference
in the Red Hat and Slackware distributions charted in this article. However, "runlevels" do commonly follow patterns
described in this article. When installing Linux, it is best to consult that distribution's available user guides.
In standard practice, when a computer enters runlevel zero, it halts, and when it enters runlevel six, it reboots. The
intermediate runlevels (1-5) differ in terms of which drives are mounted, and which network services are started. Default
runlevels are typically 3, 4, or 5. Lower run levels are useful for maintenance or emergency repairs, since they usually
don't offer any network services at all. The particular details of runlevel configuration differ widely among operating
systems, and also among system administrators.
The runlevel system replaced the traditional /etc/rc script used in Version 7 Unix. The most commonly used are
listed below;
0 = Halt, Shuts down the system
1 = Single-User Mode, For administrative tasks
2 = Multi-User Mode, Without any networking
3 = Multi-User Mode with Networking, Starts the system normally CLI only.
4 = Not used/User-definable
5 = Start the system with GUI, Same as runlevel 3 but with X11Windows System
6 = Reboot
11. EMC Education Services written by joseph.hoey@emc.com 11
Utilities - UNIX provides several hundred utility programs, often referred to as commands.
Accomplish universal functions
editing
file maintenance
printing
sorting
A great resource to compare all the different commands in many of the different UNIX-like operating systems is the
“Sysadmin's Unixersal Translator or ROSETTA STONE” at http://bhami.com/rosetta.html
UNIX Command Syntax
UNIX commands must be entered in the following form:
command -options arguments
The command is always the first word. The options modify the function the command performs. The
arguments identify the data (usually a file or files) upon which the command performs its function.
This syntax is almost universal within UNIX, but not quite. A few commands take options without the
preceding dash, and some commands accept dashes but don't require them. Some commands require a dash for
each option, instead of permitting you to group several options after one dash. If you have questions about a
command's syntax, refer to the man pages.
Three additional areas you should know about using UNIX commands are: abbreviations, upper- and lower-
case and wild-card characters. The first two are simply explained:
UNIX commands cannot be abbreviated.
UNIX distinguishes between upper- and lower-case. Because of this, UNIX recognizes a command
named ls as different from Ls and LS. If you enter a lowercase command in uppercase, UNIX will not
know what to do.
The third is only a little more complicated. UNIX shells have two wild-card characters: ? and *. The ?
character is used to match one character. For example, if you tell the system to find file ???, it will return all the
file names that are three characters long. The * character is used to match file names containing a varied number
of characters. For example, if you tell the system to find m*, it will return all the file names that start with `m'
(for example, `me', `mother', and `mary' would all be returned). The * character can also be used before partial file
names (for example, *.lis) and on both sides of partial file names (for example, *.*). A useful expression is .??*
which matches all files beginning with a `.' and are at least 3 characters long. Files beginning with `.' are
typically not displayed.
12. EMC Education Services written by joseph.hoey@emc.com 12
Lab Exercise 1: Navigation
Purpose: Like UNIX operating system, the files on a Linux system are
arranged in what is called a hierarchical directory structure. This
means that they are organized in a tree-like pattern of directories
(called folders in other systems), which may contain files and other
directories. The first directory in the file system is called the root
directory. The root directory contains files and subdirectories, which
contain more files and subdirectories and so on and so on.
Tasks:
Students perform the following tasks:
man pages
processes
print working directory
changing directories
listing files and directories
prompts
References: Lecture material
13. EMC Education Services written by joseph.hoey@emc.com 13
Lab 1: Part 1 – The Man & Metacharacters
Step Action
1. man page (short for manual page) is a form of online software documentation usually
found on a Unix-like operating systems. Topics covered include computer programs
(including library and system calls), formal standards and conventions, and even abstract
concepts. A user may invoke a man page by issuing the man command
press the letter “q” to quit a man page,
“space bar” or “page down” key to page down
“Enter” key to go down one line
Its basic syntax is: man [option(s)] keyword(s)
Type and read each of the following:
man pwd (Q: what does pwd stand for?_______________________________)
man chmod (Q: what does chmod do?__________________________________)
man grep (Q: what has the –y option been replaced by?__________________)
2. Regular expressions use metacharacters. Metacharacters are simply characters that have a
special meaning. The problem occurs when you want to use a regular expression in a
shell script. Will the shell do something special with the character? Or will it be passed
unchanged to the program? The “$” character is a good example. It could be the
beginning of a variable name or it could be part of a regular expression. If you need a
regular expression, you must know if any of the characters of the expression are
metacharacters, and must know the right way to quote that character so that it is passed to
the program without being modified by the shell.
meta function example
? Match one character. ls /dev/tty?1
* Match zero or more characters. ls /dev/tty*1
; Command separator ls; pwd
~ Home directory. cd ~
& Run program in background. sleep 10 &
> file Redirect standard output to file ls /root –lia > root_directory.txt
| Pipe standard output. cut -d: -f1 < /etc/passwd | sort
Try each one of these commands and notice this difference in the outputs.
14. EMC Education Services written by joseph.hoey@emc.com 14
Lab 1: Part 2 – Processes – ps, vmstat, top, uptime, kill, and dsmeg
Step Action
1. Time to time when you are typing commands into a computer the process will stop responding or
continue running forever. It is important to know how to find and kill these processes.
2. If you just typed in a process and it just keeps running with your cursor is stuck in the process then you
can kill that process by typing ctrl+c
Basically Ctrl C sends the SIGINT (interrupt) signal while kill sends the SIGTERM (termination)
signal by default.
Let us try it this out. Log into the host assigned to you.
Type: ping 10.127.70.1
Unlike some other OS’es ping will run continuously by default in Linux. To kill the ping process
running and return your cursor to you press the control key then type c
Type: ctrl+c
Control+z is used for suspending a process by sending it the signal SIGSTOP, which cannot be
intercepted by the program, just sending the process to the background releasing the cursor. While
Control+c is used to kill a process with the signal SIGINT, and can be intercepted by a program so it
can clean its self-up before exiting, or not exit at all.
15. EMC Education Services written by joseph.hoey@emc.com 15
Step Action
3. The Processes’ Status command will show you a list of processes running on your system. Notice the
difference in these options with the ps command.
Option Description
-T select all processes on this terminal
-a select all processes on a terminal, including those of other users
-C select by command name
-e Every process on the entire system
-f Full verbose format listing
-l All treads for a particular process
Try each one of these options, and notice this difference in the outputs.
Type: ps –e
Type: ps –ef
Type: ps –elf
Now let us make a process and send it to the background giving us our prompt back.
Type: ping 10.127.70.1
Type: ctrl+z (sending the ping process to the background giving us our prompt back)
Type: ps -T (to list the status of all the processes in your terminal session)
4. locate the ping process and record the PID number (Process ID) ________
Type: kill -9 *PID* (*PID* is the number you just recorded)
for example I had to type : kill -9 19293
Option Name Description
-1 SIGHUP Hang up signal, processes can act upon the kill command or not
-2 SIGINT Interupt signal, same as control+c in the program’s terminal window
-9 SIGKILL Kill signal – terminate the process and its children, doesn’t ask.
-15 SIGTERM Termination signal – asks program to terminate
16. EMC Education Services written by joseph.hoey@emc.com 16
Step Action
5. uptime gives a one line display of the following information. The current time, how long the system
has been running, how many users are currently logged on, and the system load averages for the past
1, 5, and 15 minutes.
Type: uptime
Type: uptime –V
6. vmstat reports information about processes, memory, paging, block IO, traps, and cpu activity. The
first report produced gives averages since the last reboot. Additional reports give information on a
sampling period of length delay. The process and memory reports are instantaneous in either case.
Option Description
-d Disk stats
-a Memory pages
-s Event counters
-n Header to be displayed
Try each one of these options, and notice this difference in the outputs.
Type: vmstat
7. The dmesg command is used to display the kernel messages in Linux to you.
Type: dmesg
17. EMC Education Services written by joseph.hoey@emc.com 17
Step Action
8. top - dynamic real-time view of a running system. It can display system summary information as well
as a list of tasks currently being managed by the Linux kernel.
Option Description
-d Delay time interval
-u Monitor by user
-H Threads
-M Memory
Try each one of these options, and notice this difference in the outputs.
Type: top -M
18. EMC Education Services written by joseph.hoey@emc.com 18
Lab 1: Part 3 – ls, ln, and file system structure
Step Action
1. ls - Lists the contents of a directory.
Option Description
-l prints permissions, owners, size, and when last modified.
-i prints the i-node number in the first column
-a Shows you all files, even files that are hidden
-q Force printing of non-printable characters as the character (?)
-R Includes the contents of subdirectories.
-x Displays files in columns.
Try each one of these options, and notice this difference in the outputs.
Type each of these and notice the output:
Type: ls
Type: ls –a
Type: ls –i
Type: ls -l
Type: ls –lia
Type: ls /root –liaR > root_directory.txt
( > will redirect command output to root_directory.txt)
19. EMC Education Services written by joseph.hoey@emc.com 19
Step Action
2. There is no single standard UNIX/Linux file structure. Most UNIX systems however, follow a
general convention for file system organization at the highest level. List the contents of each one
of these directories below.
/ -(root) The top level directory. Contains all files in the file system.
/bin - Executable files for standard UNIX utilities
/dev - Files that represent input/output devices
/etc - Miscellaneous and system administrative files
/lib - UNIX program libraries
/tmp - Temporary space used by programs or users.
/usr/bin - less common utilities.
/usr/local - Programs installed by local site
/var - Variable sized files - can grow and shrink dynamically
20. EMC Education Services written by joseph.hoey@emc.com 20
Step Action
3. Links in Linux are like short cuts in Windows. The ln will make links between files.
There are two types of links
symbolic links: Refer to a symbolic path indicating the abstract location of another file
hard links : Refer to the specific location of physical data.
Option Description
-p Physical – make a hard link directly to symbolic link
-s Symbolic – make link symbolic instead of hard
-f Force – remove existing destination file
Type: ln -s /home/joe/file1.txt /joe.file.txt
Type: ls –lia /
21. EMC Education Services written by joseph.hoey@emc.com 21
Lab 1: Part 4 – pwd and home
Step Action
1. Since a command line interface cannot provide graphic pictures of the file system
structure, it must have a different way of representing it. Think of the file system tree as a
maze, and you are standing in it. At any given moment, you are located in a single
directory. Inside that directory, you can see its files and the pathway to its parent
directory and the pathways to the subdirectories of the directory in which you are
standing.
The directory you are standing in is called the working directory. To find the name of the
working directory, use the pwd command.
Type: pwd
2. Each user has a unique "home" directory. Your home directory is that part of the file
system reserved for your files. After login, you are "put" into your home directory
automatically. This is where you start your work.
Since you are logged in as root then you are left in root’s home directory. The location of
root’s home directory varies depending on distribution of Linux or flavors of UNIX or
BSD. Root’s home could be any of these;
/
/root
/user/root
/user/home/root
Type: echo $HOME to find where your home directory is, or type
note root’s home directory _________________________
3. The PATH is an environment variable that is a list of directories that the operating
system looks in to find commands issued by the user. The syntax for setting your path is
slightly dependent on which shell you are using. The default shell for RedHat 5.x and 6.x
is the bash shell.
Type: export PATH=$PATH:/usr/sbin/:/usr/local/bin
End of Lab Exercise
22. EMC Education Services written by joseph.hoey@emc.com 22
Lab 1: Part 5 – cd, mkdir, rmdir, and history
Step Action
1. To change your working directory (where you are standing in the maze) you use the cd command. To
do this, type cd followed by the pathname of the desired working directory. A pathname is the route
you take along the branches of the tree to get to the directory you want. Pathnames can be specified in
one of two different ways; absolute pathnames or relative pathnames. Let's look with absolute
pathnames first.
An absolute pathname begins with the root directory and follows the tree branch by branch until the
path to the desired directory or file is completed. For example, there is a directory on your system in
which most programs are installed. The pathname of the directory is /usr/bin. This means from the root
directory (represented by the leading slash in the pathname) there is a directory called "usr" which
contains a directory called "bin".
Type: cd . ( . is your current directory, so you don’t go anywhere)
Type: cd .. ( .. is the parent directory to the one you are in, so you should be in / )
Type: cd / ( / is the absolute path that will always get you to / )
Type: cd tmp ( this relative pathname will put you in sub-directory tmp if one exists where you are)
Type: cd /usr/tmp (this absolute path that will always take you to /usr/tmp no matter where you are)
Type: cd /root (absolute path that will always get you to root’s home /root )
2. mkdir – make directory
Type: mkdir /root/mydir (will make a sub folder in /root called mydir)
Type: mkdir /home/YourName (will make a sub folder in /home named after you)
Type: ls
23. EMC Education Services written by joseph.hoey@emc.com 23
Step Action
3. rmdir – removes empty directory
Type: rmdir /root/mydir (will remove the folder /root/mydir)
4. A particularly useful command is the history command. History show a list of recently-executed
commands, all recorded in a history list
Type: history
End of Lab Exercise
24. EMC Education Services written by joseph.hoey@emc.com 24
This page intentionally left blank
25. EMC Education Services written by joseph.hoey@emc.com 25
Lab 1: Part 6 – Prompt using PS1
Step Action
1. Most of us work with a shell prompt. By default most Linux distros displays hostname and current
working directory. You can easily customize your prompt to display information important to you.
Prompt is control via a special shell variable. You need to set PS1, PS2, PS3 and PS4 variable. If
set, the value is executed as a command prior to issuing each primary prompt.
PS1 - The value of this parameter is expanded and used as the primary prompt string.
2. How do I display current prompt setting? Simply use echo command, enter:
Type: echo $PS1
3. So when executing interactively, bash displays the primary prompt PS1 when it is ready to read a
command, and the secondary prompt PS2 when it needs more input to complete a command. Bash
allows these prompt strings to be customized by inserting a number of backslash-escaped special
characters that are decoded as follows:
Option Description
h The hostname up to the first .
H the FQDN hostname
r carriage return
s the name of the shell
d The date in "Weekday Month Date" format (e.g., "Tue May 26")
t the current time in 24-hour HH:MM:SS format
u the username of the current user
w the current working directory
Let us try to set the prompt so that it can display today’s date and hostname:
Type: PS1="d h $ "
Output: Tue Jan 08 OSBootcamp $
Now setup prompt to display date/time, hostname and current directory:
Type: PS1="[d t u@h:w ] $ "
Output: [Tue Jan 08 15:56:16 root@OSBootcamp:/tmp ] $
Question: What would you type to change the prompt to username @ hostname: pwd >
Your Answer: _______________________________________________
26. EMC Education Services written by joseph.hoey@emc.com 26
Step Action
4. Answer: PS1="u@h: w >"
27. EMC Education Services written by joseph.hoey@emc.com 27
Lab 1: Part 7 – Identity – who, whoami, id, uname, arch, and hostname
Step Action
1. Here are some commands that help identify the user and system itself.
2. who - show who is logged on
Type: who
3. whoami - print effective userid
Type: whoami
4. id - print real and effective UIDs and GIDs
Type: id
5. uname - print system information
Option Description
-a Basic information
-i Hardware info
-p Processor CPU type
-r Operating system info
-s System name
Try each one of these options, and notice this difference in the outputs.
Type: uname
Type: uname –a (to print hardware and software info about the system)
Type: uname –i (to print machine hardware info)
Type: uname –r (to print operating system version info)
6. arch – Print machine architecture type
Type: arch
28. EMC Education Services written by joseph.hoey@emc.com 28
Step Action
7. Hostname is the program that is used to either set or display the current host, domain or node name
of the system. These names are used by many of the networking programs to identify the machine.
To display the computer name as defined in the /etc/hosts file.
You could just type more /etc/hosts if you have the file permission to do so or:
Option Description
-a Display any alias
-d display DNS domain
-f Display the FQDN (Fully Qualified Domain Name)
-i Display the IP address of the host as resoled from DNS
-v verbose
Try each one of these options, and notice this difference in the outputs.
Type: hostname
Type: uname –n
End of Lab Exercise
30. EMC Education Services written by joseph.hoey@emc.com 30
Lab Exercise 2: File and Directory commands
Purpose: Listing creating, manipulating, and deleting files and directories
Tasks:
Students perform the following tasks:
Making and removing directories
Creating, concatenating, listing files
Moving, copying, renaming, deleting files
Editing files using vi
Viewing and changing permissions
Packaging files
References: Lecture material
31. EMC Education Services written by joseph.hoey@emc.com 31
Lab 2: Part 1 - File commands – more, touch, cp, cat, mv, and rm
Step Action
First go back to the directory you named after yourself.
Type: cd /home/YourName
1. touch - create new, empty files or change file access and modification time.
Option Description
-a change only the access time
-c do not create any files
-m change only the modification time
-t STAMP use this time MMDDhhmm instead of current time
Try each one of these options, and notice this difference in the outputs.
Type: touch file1.txt
Type: ls (to verify that your file has been made)
32. EMC Education Services written by joseph.hoey@emc.com 32
Step Action
2. more - paging through text one screen full at a time
Option Description
-p clear the whole screen and then display the text.
-d more will prompt the user
-c paint each screen from the top
/pattern Search for the occurrence of regular expression.
Try each one of these options, and notice this difference in the outputs.
Type: more file1.txt (displays contents of empty file you created))
Type: ls /home –liaR > home_directory.txt ( > will redirect command output to file)
Type: more home_directory.txt (notice it lists the folders and their contents)
3. cp – copy a file
Option Description
-a archive
-b backup
-f force
-l link instead of coping
-r copy directories recursively
Try each one of these options, and notice this difference in the outputs.
Type: cp home_directory.txt file2.txt
(this makes a copy of the file and names it file2.txt)
4. cat - concatenate files and print on the standard output appending one file to the end of
another.
Type: cat file1.txt file2.txt > file3.txt
(this makes file3.txt from the contents of file1 and file2)
33. EMC Education Services written by joseph.hoey@emc.com 33
Step Action
5. mv – move and/or renames a file
Option Description
-i interactive
-b backup
-f force
-t target directory
-u update - move only when the source is newer than the destination
Try each one of these options, and notice this difference in the outputs.
Type: mv file3.txt YourName.txt (this rename file3.txt to your name)
Type: mv YourName.txt /home/ (this move you’re the file named after you to /home)
Type: cd.. (moves your prompt to /home, you could have typed cd /home as well)
Type: ls –lia (do you see your file here at /home?)
34. EMC Education Services written by joseph.hoey@emc.com 34
Step Action
6. rm – remove a file
Option Description
-i interactive - prompt before every removal
-f force - never prompt
-r recursive - remove directories and their contents recursively
-v verbose - explain what is being done
rm YourName.txt
End of Lab Exercise
35. EMC Education Services written by joseph.hoey@emc.com 35
Lab 2: Part 2 – text editor - vi
Step Action
1. There are lots of command line editors; nano, pico, Emacs, vim, gEdit, gVim, Eclipse, but the
original is called vi.
vi- is a screen-oriented text editor originally created for BSD operating system in 1979. vi has
been available for all versions of BSD, UNIX, and Linux since then, even Android and iOS.
When vi was written keyboards didn’t have all the keys they have today like the arrow keys so
other keys were assigned functions. Newer versions of vi now do use the added keys like
arrows. Here is a list of the most key functions;
Cursor movements
h or (left arrow) left one character
l or (right arrow) right one character
j or (down arrow) down one line
k or (up arrow) up one line
Deleting and Pasting
d delete
i insert text before cursor
x delete character cursor is on
r replace one character
a append text after cursor
y yank or copy into temporary buffer)
Y yank or copy line cursor is on
p paste below cursor line (deleted or copied text)
u undo last editing command
Exiting vi
:w write edit buffer to disk
:w filename write edit buffer to disk as filename
:q! quit without writing edit buffer to disk
:wq! write and quit even if it is read-only
2. Perhaps the most puzzling aspect of vi is that it is a modal editor. These are the two modes of
operation:
Insert mode: If you're in insert mode and type an x, the letter is added to the document
at the current cursor point. In insert mode, the letters you type form words and
sentences. Unlike many word processors, vi starts up in command mode.
Command mode: If you're in command mode, the x command causes the letter under
the cursor to be deleted, not added. In command mode, the letters of the keyboard
perform editing functions (like moving the cursor, deleting text, etc.). To enter
command mode, press the escape <Esc> key.
36. EMC Education Services written by joseph.hoey@emc.com 36
Step Action
3. Type: cd /home/YourName
vi *YourName.txt* - The filename can be the name of an existing file or new file to create.
4. insert mode, now whatever keys you press the character will be represented there.
Type: i
5. type “joe was here” – notice the text you type is appearing in the file
6. To insert text in a line:
Position the cursor where the new text should go.
Type i - telling vi you want to enter insert mode
Enter the letter “w” so that now it reads “joe was where”.
The text is inserted BEFORE the cursor. Press <Esc> to get back to command mode.
7. To replace one character with another:
Move the cursor to the “w” character to be replaced.
Type r – telling vi you want to replace a single character
Type the replacement character “t” so now it reads “joe was there”.
The new character will appear, and you will still be in command mode.
8. To add text to the end of a line:
Position the cursor on the last letter of the line.
Type a – you could have moved the cursor to the end of the line and type i
Enter the new text “, but Karen was not here”
This adds text AFTER the cursor. Press <Esc> to get back to command mode.
9. To undo your most recent edit, type
u
To undo all the edits on a single line, type U
Undoing all edits on a single line only works as long as the cursor stays on that line. Once you
move the cursor off a line, you cannot use U to restore the line.
10. press the ESC key to exit from insert mode to command mode
11. The vi editor is built on a 1978 BSD text editor called ex. ex commands can be used within vi.
ex commands begin with a : (colon) and end with a <Return>
Type :wq! Then press Enter this is telling vi w=write, q=quit, !=now
if you just want to exit vi without saving you would just type :q!
End of Lab Exercise
38. EMC Education Services written by joseph.hoey@emc.com 38
Lab 2: Part 3 – Permissions - chmod
Step Action
1. UNIX is a multi-user system. Every file and directory in your account can be protected from or
made accessible to other users by changing its access permissions. Permissions for a file or
directory may be any or all of:
r - read
w - write
x - execute = running a program
Each permission (rwx) can be controlled at three levels:
u - user = yourself
g - group = can be people in the same project
o - other = everyone on the system
owner read (r)
owner write (w)
owner execute (x)
group read (r)
group write (w)
group execute (x)
public read (r)
public write (w)
public execute (x)
39. EMC Education Services written by joseph.hoey@emc.com 39
Step Action
2. The chmod command is used to change access permissions for files which you own.
Option Description
-f force - never prompt
-r recursive – change files and directories recursively
-v verbose - diagnostic for every file processed
These values are added together for any one user category:
0 = no permissions
1 = execute only
2 = write only
3 = write and execute (1+2)
4 = read only
5 = read and execute (4+1)
6 = read and write (4+2)
7 = read and write and execute (4+2+1)
So access permissions can be expressed as three digits. For example:
command user group others
chmod 210 file1.txt -w- --x ---
chmod 351 file1.txt -wx r-x --x
chmod 604 file1.txt rw- --- r--
chmod 752 file1.txt rwx r-x -w-
chmod 773 file1.txt rwx rwx -wx
40. EMC Education Services written by joseph.hoey@emc.com 40
Step Action
3. Type: chmod 631 file1.txt
Type: ls -lia – look at the permissions for the file
Type: chmod 755 file1.txt
Type: ls –lia – look at the permissions for the file
41. EMC Education Services written by joseph.hoey@emc.com 41
Lab 2: Part 4 - File packaging - tar and zip
Step Action
1. In UNIX, the name of the tar command is short for tape archiving, the storing of entire file
systems onto magnetic tape. Commonly tar is used to simply combine a few files into a single file,
for easy storage and distribution.
option Function
-c Create – a tar file
-r Replace – the named file
-u Update – update files to the end of the tar file
-x Extract – The named file is extracted from tar file
-f File. Used the argument as the name of the file
-i Ignore - ignore directory checksum errors
-o Ownership - Assign to extracted files.
-v Verbose. Output the name of each file
-X Exclude – relative path names.
-z compress the tar file using gzip
-j compress files and directories using bzip2
2. To combine multiple files and/or directories into a single file, use the following command:
first let’s go home.
Type: cd /home/YourName
Type: tar -cvf file.tar file1.txt file2.txt
Type: ls –lia (is the new tar file there? Are your old files there?)
ok now make a new sub directory using mkdir
now move the tar file into that sub directory using mv
now change directory into the sub directory using cd
using ls display the contents of this directory, notice only the one tar file is here.
42. EMC Education Services written by joseph.hoey@emc.com 42
Step Action
3. now let us untar the file using the tar command.
Type: tar –xovf file.tar
Type: ls (are the two text files there now?)
4. Compressed tar file - compress is a UNIX compression program based on the LZC compression
method. Files compressed by compress are typically given the extension .Z. Most tar programs will
pipe their data through compress when given the command line option -Z (tar in itself does not
compress, it just stores multiple files within one tape archive file).
Files can be returned to their original state using uncompressed. The usual action of the program is
not merely to create an uncompressed copy of the file, but to uncompress the compressed file (so
that the uncompressed version retains the timestamp and other attributes of the compressed file).
Type: tar -cjvf test.tbz /home/YourName
Type: ls
43. EMC Education Services written by joseph.hoey@emc.com 43
Step Action
5. There are many compression programs available (gzip, rar, 7zip, xz, lbzip2, ect..) The original zip
and unzip programs are the most common and work almost exactly like their cousin PKZIP in the
DOS environment. You can compress a single file or bunch of files together into a zip file like this:
Type: zip compressed.zip file.tar (to compress the tar file)
Type: ls –lia (notice the new size of the compress tar file)
ok now make a new sub directory using mkdir
now move the newly zipped tar file compressed.zip into that sub directory using mv
now change directory into the sub directory using cd
Then you can extract the original files like this: unzip compressed.zip
Type: ls –lia
44. EMC Education Services written by joseph.hoey@emc.com 44
Lab Exercise 3: finding things with grep, whereis, and find
Purpose:
find - The find command is used to locate files on a UNIX or Linux
system
grep - is a command-line utility for searching plain-text data sets for
lines matching a regular expression
Tasks:
Students perform the following tasks:
find
whereis
grep
References: Lecture material
45. EMC Education Services written by joseph.hoey@emc.com 45
Lab 3: Part 1 – find command
Step Action
1. The find command is used to locate files on a Unix or Linux system.
First change directory back to just home using cd /home
option Function
-maxdepth levels escend at most X levels
+n for greater than n
-n for less than n,
-name file name
-size
-type
-user owned by a specific user
Try and find the file2.txt file using the command below.
Type: find / -name file2.txt
2. Find every file under the directory /var/spool that was modified more than 60 days ago.
Type: find /var/spool -mtime +60
3. To locate files modified less than 10 minutes ago. I use this right after using some
system administration tool, to learn which files got changed by that tool:
Type: find / -mmin -10
4. Search for files which have specific set of permissions
Type: find . -perm 755
5. find will display the pathnames of all files in the current directory and all subdirectories.
Type: find . –print
Type: find .
6. You can use shell-style wildcards in the -name search argument:
Type: find . -name file*txt
Note that wildcards in the name argument must be quoted so the shell doesn't expand
them before passing them to find. Also, unlike regular shell wildcards, these will match
leading periods in filenames. (For example find -name *.txt )
46. EMC Education Services written by joseph.hoey@emc.com 46
Lab 3: Part 2 – whereis command
Step Action
1. whereis locates source/binary and manuals sections for specified files. The supplied
names are first stripped of leading pathname components and any (single) trailing
extension of the form .ext, for example, .c. Prefixes of s. resulting from use of source
code control are also dealt with. whereis then attempts to locate the desired program
in a list of standard Linux places.
option Function
-b Search only for binaries.
-m Search only for manual sections.
-s Search only for sources
Try and find the file1.txt file using the command below.
Type: whereis file1.txt
This command will not work since it is not in the PATH
2. Find the executable file ls using the command below.
Type: whereis –b ls
47. EMC Education Services written by joseph.hoey@emc.com 47
Lab 3: Part 3 – grep command
Step Action
1. The grep command searches the given file for lines containing a match to the given
strings or words. By default, grep prints the matching lines. Use grep to search for lines
of text that match one or many regular expressions, and outputs only the matching lines.
grep option function
-r search recursively the sub directories
-i ignore word case
-v Invert the sense of matching, to select non-matching lines.
-c count of matching criteria
Type: grep 'joe' file2.txt
now you try using grep on your own. Here is the syntax;
grep 'string1 string2' filename
cat otherfile | grep 'something'
command | grep 'something'
man grep for even more information and options.
remember pressing the letter “q” quits man
2. Combining find and grep - If you want to search every subdirectory beneath the current
directory for the string 'joe', you'd issue a find/grep command like this:
Type: find . -type f -exec grep 'joe' {} ;
End of Lab Exercise
49. EMC Education Services written by joseph.hoey@emc.com 49
Lab Exercise 4: networking
Purpose: To discover network setting and use the network to login into
remote servers and copy file to and from them.
Tasks:
Students perform the following tasks:
ifconfig
ping
traceroute
telnet and ssh
rlogin, rsh, and rcp
ftp
References: Lecture material
50. EMC Education Services written by joseph.hoey@emc.com 50
Lab 4: Part 1 - networking – ifconfig, ping, and traceroute
Step Action
1. ifconfig (short for interface configuration)
A system administration utility in UNIX-like operating systems to configure, control, and
query TCP/IP network interface parameters from a command line interface or in system
configuration scripts. You may even see similar commands on network switches.
Type: ifconfig –a (all Ethernet interfaces)
Type: ifconfig eth1 (just Ethernet interface eth1)
2. ping (name comes from active sonar terminology)
The ping command operates by sending Internet Control Message Protocol (ICMP) Echo
Request messages to the destination computer and waiting for a response. How many of
those responses are returned, and how long it takes for them to return, are the two major
pieces of information that the ping command provides. The ping command sends one
datagram per second and prints one line of output for every response received. Round-
trip times and packet loss statistics are calculated and displayed.
option Function
-t ttl Time To Live in ms
-a resolve, if possible, the hostname of an IP address
-c number of ICMP Echo Request messages to send
-I Use this option to specify the source interface (i.e. eth0, eth1, eth2, ect)
-s (size) Set the size, in bytes, of the packet (32 to 65,527)
Try each one of these options, and notice this difference in the outputs.
Type: ping 10.127.70.1
Type: ping 10.127.70.1 –c 3
Type: ping 10.127.70.1 –s 9000
3. traceroute
The traceroute command prints the route that IP packets take to a network host. It is
intended for use in network testing, measurement, and management.
option Function
-6 Explicitly force IPv6 traceouting.
-I Use ICMP ECHO for probes
-T Use TCP SYN for probes
-r Bypass the normal routing tables and send directly to a host on an
attached network.
Try each one of these options, and notice this difference in the outputs.
Type: traceroute 10.127.70.1
End of Lab Exercise
51. EMC Education Services written by joseph.hoey@emc.com 51
Lab 4: Part 2 – remote access – ssh, ftp, scp, and rsync
Step Action
1. telnet
Telnet is a bidirectional interactive text-oriented (CLI) communication utility that allows
a computer user at one site to make a connection, login and then conduct work on a
computer at another site. For example, you can use the telnet command to run a program
in your directory on a supercomputer thousands of miles away.
Most network equipment and operating systems with a TCP/IP stack support a Telnet
service for remote configuration (including Windows, BSD, Mac OS, Linux, and UNIX).
However, because of serious security issues when using Telnet over an open network
such as the Internet, its use for this purpose usage has waned significantly in favor of
SSH. Most enterprise customers will not allow telnet to be used on the network and
disable the services on most clients and servers. Because of this we will not be doing any
telnet labs.
2. rlogin and rsh
rlogin (remote login), rsh (remote shell) and rcp (remote copy) are three utilities which
allow you to perform tasks on other machines without requiring the usual login
authentication. All three utilities depend upon a .rhosts file located in your /home
directory.
rlogin:
Allows you to login to a remote machine. It is nearly identical to telnet in function and
appearance, however if your .rhosts file is setup accordingly, you will be able to login to
your account on another machine without having to enter a userid and password.
rsh:
The remote shell command can be used to execute a command on remote host or log into
remote host. With the proper .rhosts file, authentication is not required.
3. ssh
Secure Shell (SSH) is a cryptographic network protocol for secure data communication,
remote shell services or command execution and other secure network services between
two networked computers that connects, via a secure channel over an insecure network.
ssh was designed as a replacement for telnet, rsh, and rlogin which send information,
notably username and passwords, in plaintext.
ssh xxx.xxx.xxx.xxx or ssh fqdn
From a GUI you can use any number of ssh clients like PuTTY.
You have been using ssh this entire time, so all your labs are ssh labs.
End of Lab Exercise
52. EMC Education Services written by joseph.hoey@emc.com 52
Lab 4: Part 3 – Moving data remotely
1. ftp
ftp stands for File Transfer Protocol. File transfer provides a means for you to obtain computer files
(text, image, sound, etc.) from other computers over the network.
ftp can also be used to send (upload) files from your computer to another computer, providing you
have write permission or a real account on the machine you are uploading.
FTP Command options
open <IP Address> open an ftp session to a fqdn or address
close <IP Address> close connection you can also use bye
bin set to transfer for binary and text files
hash display progress during get # for every 1024 bytes
mget multiple get – download files in to current directory
mput multiple put – upload files from current directory
lcd Change the working directory on the local machine
Type: cd /home/YourName
Type: uname –a (record the OS version and CPU type of your host________________)
Type: ftp ftp.emc.com (username: anonymous / password: your.email@emc.com)
2. Type: bin (there are 2 modes of ftp ascii for text only and binary for everything, always just use
binary for all your ftp file transfers)
Type: hash (hash places a #### symbol every time 8kb of data is transferred, letting you know
the ftp is moving files and not locked up)
53. EMC Education Services written by joseph.hoey@emc.com 53
3. Type: pwd
Type: ls
Type: cd /pub/elab/inquiry/v7.3.2.0 (there is a free scsi inquiry utility that EMC publishes)
Type: ls (there is a version for most of the operating systems they support)
Type: mget inq.LinuxAMD64 (download the correct version for your OS)
4. bye (to close our ftp connection to ftp.emc.com)
Type: ls –lia (to verify your file has downloaded)
5. Type: chmod 755 inq.LinuxAMD64 (change permission so you can execute the file)
Type: ./inq.LinuxAMD64 ( ./ tells the OS to look in your current directory to execute the file)
Rename inq.LinuxAMD64 executable and put it where it will always be in out path.
Type: cp inq.LinuxAMD64 /sbin/inq (now we can just type inq no matter where we are)
54. EMC Education Services written by joseph.hoey@emc.com 54
6. rcp:
Remote Copy enables you to copy files between different systems. With the proper .rhosts file, no
authentication is required.
7. scp
Secure Copy was designed as a secure replacement for ftp and rcp. SCP copies files between hosts
on a network. It uses ssh for data transfer, and uses the same authentication and provides the same
security as ssh. SCP will ask for passwords as they are needed for authentication.
Typically, a syntax of scp program is like the syntax of copy (cp):
Copying file to host:
scp SourceFile user@host:directory/TargetFile
Copying file from host:
scp user@host:directory/SourceFile TargetFile
scp -r user@host:directory/SourceFolder TargetFolder
Note that if the remote host uses a port other than the default of 22, it can be specified in the
command. For example, copying a file from host:
scp -P 2222 user@host:directory/SourceFile TargetFile
As the SCP protocol implements file transfers only, GUI SCP clients like WinSCP are rare, as
implementing it requires additional functionality
8. sftp
Compared to the earlier SCP protocol, which allows only file transfers, the SFTP protocol allows
for a range of operations on remote files – it is more like a remote file system protocol. An SFTP
client's extra capabilities compared to an SCP client include resuming interrupted transfers,
directory listings, and remote file removal.
SFTP attempts to be more platform-independent than SCP; for instance, with SCP, the expansion
of wildcards specified by the client is up to the server, whereas SFTP's design avoids this problem.
While SCP is most frequently implemented on Unix platforms, SFTP servers are commonly
available on most platforms.
SFTP is not FTP run over SSH, but rather a new protocol designed from the ground up by the IETF
SECSH working group. It is sometimes confused with Simple File Transfer Protocol.
9. rsync
rsync was originally written as a replacement for rcp and scp to synchronize files and directories
from one location (host) to another while minimizing data transfer by using deltas, to ensure only
changed data is copied.
rsync [OPTION] … SRC [SRC] … [USER@]HOST:DEST
End of Lab Exercise
56. EMC Education Services written by joseph.hoey@emc.com 56
Lab Exercise 5: local storage and file systems
Purpose:
Examining disks and partitions in Linux, displaying file system
information
Tasks:
Students perform the following tasks:
Basic disk usage
Physical Volumes
Manipulating Volume groups
Manipulating Logical volumes
References: Lecture material
57. EMC Education Services written by joseph.hoey@emc.com 57
Lab 5: Part 1 – File System – fdisk, cfdisk, mkfs, mount, and df
Step Action
Most versions of UNIX-like operating systems support a common way using basic disks. It is
very common to divide disks into logical storage units referred to as partitions, to treat one
physical disk drive as if it were multiple disks. This is a common way of segregating data
based on its’ purpose. For instance when we install Linux on a computer with 1 disk it would
partition it into several units. (/boots, /tmp, /user, /root, /var/log, swap) . A good Windows
administrator would also do something similar as well, putting Windows and Program Files
into one partition, application data into a second partition and Users data into a third partition.
The traditional way of using disk is with master boot record (MBR) partitioning scheme, as
used in DOS, Microsoft Windows and Linux among others on Intel compatible computer
systems. The total data storage space of a hard disk can be divided into at most four primary
partitions. If more than 4 are needed then one would create three primary partitions and an
extended partition, with up to 256 logical volumes in the extended partition. Then each
partition or logical volume can have its’ own unique file system.
For Intel compatible BIOS based system disks with 512-byte sectors, the MBR partition table
entries allow up to a maximum of 2.20 TB sectors × 512 bytes per sector). limitations of MBR
partition tables, which use 32 bits for storing logical block addresses and size information
A file system is an organization of data and metadata on a storage device. Linux supports a
large number of file systems, from journaling to clustering to cryptographic.
The most popular are:
name Attribute
ext Extended file system and was the first created specifically for Linux
ext2 allow for extended file attributes and 2 terabyte drives (Linux)
ext3 like just Ext2 with journaling (keeps track of the changes)
ext4 reduces file fragmentation, allows for larger volumes and files (Linux)
btrfs copy on write file system aimed at implementing advanced features while
focusing on fault tolerance, repair and easy administration. (Linux)
f2fs Flash-Friendly File System for SSD (Linux)
jfs Journaling File System that can be dynamically resized (AIX/OS2/Linux)
VxFS VERITAS File System (or VxFS; called JFS and OnlineJFS in HP-UX)
zfs Is Sun (now Oracle) file system. ZFS and zpools are easy to use, but use a lot of
cpu & ram. Drive pooling, snapshots, and dynamic disk striping
(BSD/SunOS/Mac OS/Linux)
fat FAT file system is a legacy file system which is simple and robust (most OSes)
ntfs New Technology File System is the replacement for FAT on Windows
58. EMC Education Services written by joseph.hoey@emc.com 58
Step Action
1. Before we can make a file system we need to find block storage device to put the file system
on. There are a number of different ways to do this. The universal fdisk command will work
on almost all UNIX-like OS'es. fdisk can be difficult to use so there are a number of
alternatives depending on OS and distribution.
Type: fdisk –l (notice there are several various sizes devices called /dev/sd*)
Another way is to look into the /proc/scsi/scsi file can to find this info.
Type: cat /proc/scsi/scsi
cfdisk (is a text menu driven system alternative to fdisk)
Various distros of Linux prefer cfdisk instead of fdisk. cfdisk is a Linux partition editor,
similar to fdisk, but with a different user interface . It is part of the util-linux package of Linux
utility programs. If invoked without arguments, cfdisk attempts to read the current partition
table from the disk drive and present its findings.
Type: cfdisk (q quits cfdisk)
2. An easier way of seeing this info is to use EMC’s freely available inquiry command
ftp://ftp.emc.com/pub/elab/inquiry/
Type: inq –h (notice all the options for a SAN attached host to EMC storage)
Type: inq
Type: inq -btl (bus, target, lun address for the storage)
Type: inq -mapinfo (great for usage on a SAN)
Type: inq -dev /dev/sda –page0 (tons of unformatted info)
59. EMC Education Services written by joseph.hoey@emc.com 59
Step Action
3. mkfs - Makes a file system on an entire device or just a partition
option Function
-t Specifies the type of file system to be built
-c Check the device for bad blocks before building the file system
Type: mkfs –t ext3 /dev/sdb (this command made a ext3 file system on the entire device)
Type: y (to proceed)
4. mount - mount File system
option Function
-a Mount all file systems (of the given types) mentioned in fstab file.
-r Mount the file system read-only.
-w Mount the file system read/write. This is the default
-t used to indicate the file system type ( iso9660 is default)
Type: mkdir /mnt/*YourName_FS* (make a directory to mount your file system)
Type: mount /dev/sdb/ /mnt/*YourName_FS* (mount your new fs to your directory)
60. EMC Education Services written by joseph.hoey@emc.com 60
Step Action
5. df - display file systems
option Function
-a all - include dummy file systems
-h human - print sizes in human readable format (e.g., 1K 234M 2G)
-k kilobytes – block size = 1024
-T type - print file system type
--direct direct - show statistics for a file instead of mount point
--total produce a grand total
Try each one of these options, and notice this difference in the outputs.
Type: df –k (you can see the usage of your newly mounted file system)
Type: df –Tha (same info but easier to read)
6. Type: cd /mnt/*YourName_FS* (you can now put files on your new fs)
7. ***Note - Intel's proposed replacement for the BIOS using MBR is Extensible Firmware
Interface (EFI) using GUID Partition Table (GPT). GPT is a standard for the layout of the
partition table on a physical hard disk. GPT allocates 64 bits for logical block addresses and
therefore allows a maximum disk and partition size of 264 sectors. For disks with 512-byte
sectors, that would be 9.4ZB. Most current computer support EFI and most operating systems
can now use GPT.***
61. EMC Education Services written by joseph.hoey@emc.com 61
Lab 5: Part 2 – LVM – lvmdiskscan, pvscan, pvdisplay, and pvcreate
Step Action
Using basic disks with partitions is a quick and easy way of utilizing disk space. In an enterprise
environment when host on a SAN could have hundreds of block devices, it becomes far too
cumbersome to just use basic disks.
Logical volume management or LVM provides a method of allocating space on mass-storage
devices that is more flexible than conventional partitioning schemes. In particular, a volume
manager can concatenate, stripe together, RAID, or otherwise combine partitions into larger
virtual ones that administrators can re-size or move, potentially without interrupting system use.
Volume management represents just one of many forms of storage virtualization; its
implementation takes place in a layer in the device-driver stack of an OS.
Most volume-manager implementations share the same basic design. They start with physical
volumes (PVs), which can be either being hard disks, partitions, or Logical Unit Numbers (LUNs)
of an external storage device. Volume management treats PVs as sequences of chunks called
physical extents (PEs).
The following commands will only work on Linux and HP-UX. Almost all UNIX-like OS’es have
some type of LVM with similar commands and like functionality.
1. lvmdiskscan scans all SCSI, (E)IDE disks, multiple devices and a bunch of other block devices
in the system looking for LVM physical volumes. The size reported is the real device size.
Type: lvmdiskscan
Type: lvmdiskscan -l
2. pvscan - scans all supported LVM block devices in the system
option Function
-e Only show physical volumes belonging to exported volume groups.
-n Only show physical volumes not belonging to any volume group.
-u Show Uniform Unique Identifiers in addition to device special names.
Try each one of these options, and notice this difference in the outputs.
Type: pvscan (once again notice that only one is in use)
3. pvdisplay - allows you to see the attributes of one or more physical volumes
option Function
-m Mapping of physical extents to logical volumes and logical extents.
-c Generate colon separated output for easier scripting.
-s Give a short listing showing the existence of volume groups.
Try each one of these options, and notice this difference in the outputs.
Type: pvdisplay –v (see that only one block device is used by the Logical Volume Manager)
62. EMC Education Services written by joseph.hoey@emc.com 62
Step Action
4. pvcreate - initializes disk, physical volumes, or partition for use by the Logical Volume Manager
(LVM)
option Function
-u Specify the uuid for the device.
-y Answer yes to all questions
-v verbose output
Type: pvcreate /dev/sdc (this command just initialized that one block device for the LVM)
Type: pvscan (notice now one more block device is ready to be used be the LVM)
Type: pvdisplay –v
Type: pvcreate /dev/sde /dev/sdg (initialized the remaining block devices)
Type: pvscan
Type: pvdisplay –v
5. df - display file systems
Type: df –Tha (your new device doesn’t show up because there is no file system)
63. EMC Education Services written by joseph.hoey@emc.com 63
Lab 5: Part 3 – Volume Groups – vgcreate, vgextend, vgexport, and vgimport
Step Action
A volume group (VG) is a logical collection of Physical Volumes (PV) into one
administrative unit. For purposeful grouping, of computer storage space that may span
multiple physical devices.
1. vgcreate - vgcreate creates a new volume group using the block special devices
option Function
-l Sets the maximum number of logical volumes allowed in this VG
-p Sets the maximum number of physical volumes allowed in this VG
-s Sets the physical extent size on physical volumes of this volume group.
Type: vgcreate YourName_VG /dev/sdc
2. vgdisplay - display attributes of volume groups
option Function
-A Only select the active volume groups.
-c Generate colon separated output for easier scripting.
-s Give a short listing showing the existence of volume groups.
-v Give a verbose listing showing the existence of volume groups.
Try each one of these options, and notice this difference in the outputs.
Type: vgdisplay (notice the attributes of the VG including the VG size)
64. EMC Education Services written by joseph.hoey@emc.com 64
Step Action
3. vgextend - vgextend allows you to add one or more initialized physical volumes to an
existing volume group to extend it in size. Moreover, it allows you to re-add a physical
volume that has gone missing previously, due to a transient device failure, without re-
initializing it.
Type: vgextend *YourName_VG* /dev/sde (this added /dev/sde to your VG)
Type: vgdisplay (notice the attributes of the VG including the VG size)
4. vgscan - scan all disks for volume groups and build /etc/lvmtab and /etc/lvmtab.d/*
which are the database for all other lvm commands.
option Function
-l Sets the maximum number of logical volumes allowed in this VG
-p Sets the maximum number of physical volumes allowed in this VG
Type: vgscan –v
5. vgexport - Make volume groups unknown to the system (think snapshots and clones
used to export a volume group production server to a backup server.)
Type: vgexport *YourName_VG*
Type: vgdisplay –v (notice that your vg is now exported, perfect time to take a
snapshot)
65. EMC Education Services written by joseph.hoey@emc.com 65
Step Action
6. vgimport - Makes a volume group known to the system which has previously been
exported (Import snapshots and clones to a backup server.)
Type: vgimport *YourName_VG*
Type: vgdisplay –v
66. EMC Education Services written by joseph.hoey@emc.com 66
Lab 5: Part 3 – Logical Volumes – lvcreate, lvdisplay, and lvextend
Step Action
Logical volumes (LV) are mapped onto physical volumes or volume groups (VG). A logical
volume is the storage medium that is associated with a logical disk. It typically resides on one or
more hard disk drives.
1. lvcreate - creates a new logical volume in a volume group
option Function
-i number of stripes
-I stripe size in kilobytes
-l number of logical extents to allocate for the new logical volume.
-L size to allocate for the new logical volume.
-n name of logical volume
-p Set access permissions to read only or read and write.
Type: lvcreate -i 2 -I 8 -L 100 –n *your name_LV* *YourName_VG*
(creates a 100MB Logical Volume on your VG)
2. lvdisplay - Display attributes of a logical volume
option Function
-all Include information in the output about internal Logical Volumes
-c Generate colon separated output for easier scripting
-m Display the mapping of logical extents to physical volumes and physical
extents.
Try each one of these options, and notice this difference in the outputs.
Type: lvdisplay (see all of the logical volumes)
Type: lvdisplay -v /dev/*YourName_VG*/*YourName_LV*
67. EMC Education Services written by joseph.hoey@emc.com 67
Step Action
3. lvextend - allows you to extend the size of a logical volume.
option Function
-l set the logical volume size in units of logical extents.
-L Extend or set the logical volume size in units of megabytes.
-i Gives the number of stripes for the extension.
-I Gives the number of kilobytes for the granularity of the stripes.
-n Do not perform fsck before extending file system .
-r Resize underlying file system together with the logical volume using fsadm
Type: lvextend -L +50 /dev/*YourName_VG*/*YourName_LV*
68. EMC Education Services written by joseph.hoey@emc.com 68
4. mkfs - Makes a file system on your new logical volume
Type: mkfs –t ext4 /dev/*YourName_VG*/*YourName_LV*
5. mount - mount File system
Type: mkdir /mnt/*YourName_LV_FS* (make a directory to mount your file system)
To mount your new fs to your directory
Type: mount /dev/*YourName_VG*/*YourName_LV* /mnt/*YourName_LV_FS*
6. df - display file systems
Type: df –Tha (you can see your newly mounted file system and how much is used)
70. EMC Education Services written by joseph.hoey@emc.com 70
Lab Exercise 6: Networked Storage
Purpose:
Examining disks and partitions in Linux, displaying file system
information
Tasks:
Students perform the following tasks:
Networked Storage
Fibre Channel and FCoE
iscsi
NFS (network file system)
References: Lecture material
71. EMC Education Services written by joseph.hoey@emc.com 71
Lab 6: Part 1 – File level - NFS & CIFS
Step Action
The common ways of accessing networked file storage is to use NFS or CIFS.
Windows hosts use CIFS (also known as SMB) to access a network share by mapping a
network drive. This can be done via the command line with the net use command but is
most commonly done using the GUI itself.
Network File System (NFS) is a distributed file system protocol, allowing a user on a
client computer to access files over a network in a manner similar to how local storage is
accessed. It allows client system mount an exported file system from a server. This server
exporting the NFS mount could be any number of types of hosts, appliances, or storage
arrays like (Linux, Mac OS, UNIX, Windows, Iomega, NetApp, VNX, or Isilon)
1. Suppose we wanted to export the directory, /home from our UNIX-like host. First we
need to edit the /etc/exports file.
Type: ifconfig -a (record the inet address ______.______.______.______)
Type: vi /etc/exports
Add the following line to the bottom of the file, sharing the directory with the client, note
you must replace the xxx.xxx.xxx.xxx with the inet address of your host that you found
using ifconfig -a
add the line: /home xxx.xxx.xxx.xxx (rw,sync,no_root_squash,no_subtree_check)
****note this may be the only line in your /etc/exports file
2. Then verify the edit worked ok by typing
Type: more /etc/exports
3. Type: exportfs –a (enables the export on the server)
72. EMC Education Services written by joseph.hoey@emc.com 72
Step Action
4. Now the client would mount the export being offered by the server or storage array.
Type: mkdir -p /mnt/nfs/home (create a new mount point for a NFS export on client)
Type: mount xxx.xxx.xxx.xxx:/home /mnt/nfs/home (mounts the export to the dir)
5. You can use the df –Tha command to check that the directory has been mounted to client.
Type: df –Tha
73. EMC Education Services written by joseph.hoey@emc.com 73
Lab 6: Part 2 – Block level using FC and FCoE
Step Action
Fibre Channel SAN has been around since the early 1990s. Normally when a host is
accessing fibre channel LUNs it does so over a SAN using a hardware Host Bus Adapter
(HBA) for its’ initiator (there are no software fibre channel HBA). If this is the case then all
you have to do on the host is make sure the HBA driver is installed. Most HBAs are made by
Emulex or Qlogic and the drivers are built into most UNIX-like operating systems that support
them. That means there is nothing for us to do on the host except logical volume management
of block devices like we already did in lab 4. All the work is done on the SAN switches in the
form of zoning to create the connection between the HBA initiator and the target port on the
storage array.
FCoE is a relatively new arrival on the network storage scene, and still is not widely
implemented. Most of the time an FCoE LUN would be accessed over an Ethernet SAN using
a hardware Converged Network Adaptor (CNA) acting as the initiator. The labs we have been
doing so far have been done in a virtual environment using virtual machines with local virtual
disks (like scsi hard disks inside a physical computer), so we cannot put a physical CNA in
them and then install the drivers. It is possible to use software CNA initiators in some
operating systems.
DO NOT CONTINUE DOING THE HANDS ON PORTION OF THIS LAB:
This is for information purposes only, skip to the next section.
Most server operating systems are capable of acting as an FCoE target, it is quite detailed to
setup. Our customers would be using FCoE to connect to an array like a VNX or VMAX. This
is a virtual lab environment and we do not have an FCoE target for your host to connect to.
NOTE: if you want to practice these FCoE labs you need to first setup an FCoE target on
another host. The page below describes how to do this;
https://access.redhat.com/knowledge/docs/en-
US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/fcoeconfig.html
1. The more common tasks someone may need to perform is setting up a software initiator on the
hosts’ operating system. The steps below demonstrate how to configure the software FCoE
initiator on your Linux host to connect to any type of FCoE target.
First we have to start the data center bridging daemon using the following command:
/etc/init.d/lldpad start
2. For networking interfaces that implement a hardware DCBX client, skip this step and move on
to the next.
For interfaces that require a software DCBX client, enable data center bridging on the Ethernet
interface using the following commands:
dcbtool sc ethX dcb on
Then, enable FCoE on the Ethernet interface by running:
dcbtool sc ethX app:fcoe e:1
74. EMC Education Services written by joseph.hoey@emc.com 74
Step Action
3. Load the FCoE device now using:
ifconfig ethX up
4. Start the FCoE daemon using:
service fcoe start
5. After configuring the Ethernet interface to use FCoE, It is recommended that you start the
daemons to run at startup, use chkconfig to do this:
chkconfig lldpad on
chkconfig fcoe on
6. Now that you have added new LUNs to your host you will need to get your OS to scan for
them.
echo "- - -" > /sys/class/scsi_host/host0/scan
7. Before we can make a file system we need to find block storage device to put the file system
on. There are a number of different ways to do this. The universal fdisk command will work
on almost all UNIX-like OS’es. fdisk can be difficult to use so there are a number of
alternatives depending on OS and distribution.
fdisk –l (notice there are several various sizes devices called /dev/sd*)
8. mkfs - Makes a file system on an entire device or just a partition
mkfs –t ext3 /dev/sdd (this command made a ext3 file system on the entire device)
y (to proceed)
9. mount - mount File system
mkdir /mnt/YourName_FCoE (make a directory to mount your file system)
mount /dev/sdb/ /mnt/YourName_FCoE (mount your new fs to your directory)
10. df - display file systems
df –Tha (same info but easier to read)
75. EMC Education Services written by joseph.hoey@emc.com 75
Lab 6: Part 3 – Block level using iscsi
Step Action
iSCSI (the scsi protocol encapsulated in TCP/IP) this makes iSCSI capable of using
existing Ethernet network technology and widely implemented TCP/IP. Since the packets are
using TCP/IP as the transport packets are able of being routed over long distances (unlike
FCoE). iSCSI has been implemented since early to mid-2000s by most operating systems
vendors as a soft adaptor. Even though hardware iSCSI adaptors like HBAs and TOEs (TCP
Offload Engine) are soft initiators are quite common so that is what we will practice setting
up.
DO NOT CONTINUE DOING THE HANDS ON PORTION OF THIS LAB:
This is for information purposes only – skip to the next section.
Most server operating systems are capable of acting as an iSCSI target, it is quite detailed to
setup. Our customers would be using iSCSI to connect to an array like a VNX or VMAX. This
is a virtual lab environment and we do not have an iSCSI target for your host to connect to.
NOTE: if you want to practice these iSCSI labs you need to first setup an iSCSI target on
another host. The page below describes how to do this;
https://access.redhat.com/knowledge/docs/en-
US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/iscsi-target-setup.html
1. The more common tasks someone may need to perform is setting up a software initiator on the
hosts’ operating system. The steps below demonstrate how to configure the software iSCSI
adaptor on your Linux host to connect to any type of iSCSI target.
2. Configure the iqn name for the initiator:
vi /etc/iscsi/initiatorname.iscsi
edit or add the lines below
InitiatorName=iqn.2012-10.net.cpd:san.initiator01
InitiatorAlias=initiator01
3. Edit the iSCSI initiator configuration:
vi /etc/iscsi/iscsid.conf
edit or add the lines below
# To manually startup the session set to "manual". The default is automatic.
node.startup = automatic
# To enable CHAP authentication
node.session.auth.authmethod = CHAP
# To set a CHAP username and password for initiator
node.session.auth.username = iscsiadm
node.session.auth.password = iscsiadm123
4. Start iSCSI initiator daemon:
/etc/init.d/iscsid start
chkconfig --levels 235 iscsid on
76. EMC Education Services written by joseph.hoey@emc.com 76
Step Action
5. Discovering targets in our iSCSI server:
iscsiadm --mode discovery -t sendtargets --portal xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx:3260,1 iqn.2012-10.net.cpd:san.target01
6. Trying to login with the iSCSI LUN:
iscsiadm --mode node --targetname iqn.2012-10.net.cpd:san.target01 --portal
xxx.xxx.xxx.xxx –login
7. update of iSCSI targets database for the files located in /var/lib/iscsi/ :
cat /var/lib/iscsi/send_targets/ xxx.xxx.xxx.xxx,3260/st_config
8. Checking the status session with the target:
iscsiadm --mode session --op show
9. Checking the UUID for disk:
blkid /dev/sdb1
/dev/sdb1: UUID="71e86162-011d-49f1-9b4a-9f95a277e6b5" TYPE="ext4"
10. Add the next entry in /etc/fstab file:
UUID=71e86162-011d-49f1-9b4a-9f95a277e6b5 /mnt/data ext4 _netdev,rw 0 0
11. With the mount option _netdev the script netfs is responsible of the mount to this device.
Without this option, Linux will try to mount this device before load the network support. We
have to check that netfs is enabled to run in the default runlevels:
chkconfig --list netfs
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
12. Now that you have added new LUNs to your host you will need to get your OS to scan for
them.
echo "- - -" > /sys/class/scsi_host/host0/scan
13. Before we can make a file system we need to find block storage device to put the file system
on. There are a number of different ways to do this. The universal fdisk command will work
on almost all UNIX-like OS’es. fdisk can be difficult to use so there are a number of
alternatives depending on OS and distribution.
fdisk –l (notice there are several various sizes devices called /dev/sd*)
14. mkfs - Makes a file system on an entire device or just a partition
mkfs –t ext3 /dev/sdf (this command made a ext3 file system on the entire device)
y (to proceed)
15. mount - mount File system
mkdir /mnt/YourName_iscsi (make a directory to mount your file system)
mount /dev/sdf/ /mnt/YourName_iscsi (mount your new fs to your directory)
77. EMC Education Services written by joseph.hoey@emc.com 77
Step Action
16. df - display file systems
df –Tha (same info but easier to read)
78. EMC Education Services written by joseph.hoey@emc.com 78
Suggestions for Further Study
There are a huge amount of resources to learn more about Operating Systems. The more you learn the more you
will see what they all have in common. It is easiest to just download install VMware Player on to your laptop or any
computer you want. http://www.vmware.com/products/player/overview.html
Fully built VMware VMs can be downloaded from the VMware Virtual Appliances Marketplace.
https://solutionexchange.vmware.com/store/category_groups/19
One of the best ways to learn a new operating system is to install it yourself. You can build a new VM in
VMware Player and install the OS by mounting up the ISO in the virtual dvd drive of the VM. The ISO of the install
DVD for operating systems can be found in many places. One of the best central places to find them is:
http://distrowatch.com/ and http://www.freeos.com/Compare
UNIX on the x86 Intel platform: webpage
UNIX System 7 – The root of all UNIX today http://www.nordier.com/v7x86/index.html
Plan 9 - purposed as the successor to Unix at Bell Labs http://plan9.bell-labs.com/plan9/
OpenSolaris - Good to practice Solaris http://www.osdisc.com/products/solaris/openindiana
OpenServer - previously SCO UNIX now owned by UnXis. http://www.sco.com/support/download.html
Minix – Mini UNIX for educational purposes http://www.minix3.org/download/
The biggest BSD distros are: webpage
FreeBSD – Most popular and grandfather to many others http://www.freebsd.org/
NetBSD – Focused on quality, stability, and performance http://www.netbsd.org/
OpenBSD – known open-source code and quality documentation http://www.openbsd.org/
FreeNAS - network-attached storage server for file and block http://www.freenas.org/
Hackintosh – a Apple Mac variant http://www.hackintosh.com/
Some of the most popular Linux distros are: webpage
CentOS – Identical to RHEL, commonly seen at EMC customers http://www.centos.org/
Fedora – very large community and user base http://fedoraproject.org/
Puppy Linux – Tiny 100MB, easy, and extremely friendly http://www.puppylinux.com/
Ubuntu – quite popular and has it’s own spin offs http://www.ubuntu.com/
Mint – A very popular version of Ubuntu http://linuxmint.com/
openSUSE – a popular distro in European datacenters http://www.opensuse.org/
Debian – a father to many other distros http://www.debian.org/
Mageia - Community project fork of Mandriva Linux http://www.mageia.org/
Damn Small Linux – only 50MB with a GUI! http://www.damnsmalllinux.org/
Android – Google’s brand of Linux http://www.android-x86.org/
OpenFiler - network-attached storage server for file and block http://www.openfiler.com/
Other x86 Operating Systems: webpage
Inferno - based on Plan 9 from Bell Labs http://www.vitanuova.com/inferno/downloads.html
BeOS - positioned as a multimedia platform http://www.bebits.com/app/2680
ReactOS- to be binary compatible with Windows http://www.reactos.org/
eComStation - operating system based on IBM OS/2 Warp http://www.ecomstation.com/democd/
Cosmos - is an open source os written in C# http://cosmos.codeplex.com/
MenuetOS - is an OS written entirely in assembly language http://www.menuetos.net/
FreeVMV – Free x86 clone of VMS http://www.freevms.net/article5.html