CISS-150 Project 2 (10 points)
(Updated October 6, 2024)
Overview
For this project, you will gather hardware information on all three virtual machines provided by your instructor. These include Windows 10, Windows Server 2019, and Ubuntu 24.04.
Learning Outcomes
- System hardware.
- Exposure to Linux commands and pseudo filesystems.
- Exposure to Windows command shell and PowerShell commands.
- Identify buses and addresses related to hardware.
VMware Details
At this point, the only real knowledge you have about the virtual hardware is what VMware says should be present in the VM. You can view this several ways:
- Select a VM in your resource pool.
- Select the Summary tab.
- Expand the VM Hardware section.
- Expand each category of hardware to reveal additional details.
Alternatively, you can:
- Right-click on a VM in your resource pool.
- Select Edit Settings.
- Expand each category of hardware to reveal additional details.
At this point begin to make notes and take some screen shots of the basic hardware: CPU, Memory, Disk, SCSI Controller and Network.
Linux
Linux provides both commands and pseudo-filesystems to give details of a running system, including the hardware.
You may want to become the root user with:
sudo -i
Becoming the superuser.
By doing so, you can run all the commands as the privileged user.
Commands
We will begin with a few commands to reveal some hardware details:
Command | Purpose |
---|---|
top |
Displays a running table of system details: CPU & memory utilization, swap space, running processes. This is good for monitoring a system. |
lsblk |
Returns the list of block devices within the system. This can be, but is not limited to, disks and their partitions. |
lspci |
Returns the details of the PCI buses in the running system. This can help determine the bus ID for adapters. |
lscpu |
Returns the details of the CPUs installed in the running system. This is particularly useful when determining how many cores/sockets and the number of sockets. |
lsmem |
Returns the details of the system-installed memory. |
free |
Returns the details of the amount of total and free memory in the system. The top command provides this information in real-time, while free provides a peek at memory use at that moment. |
vgs |
Returns the details of configured volume groups. This is part of the LVM2 subsystem. |
pvs |
Returns the details of configured physical volumes for use in volume groups. |
ip addr show |
Returns the IP address and other details of all installed network cards. |
Table 1: Linux commands to gather hardware data.
The commands are pretty straightforward to use. Run them with the -h
option for more help, but you will find they provide more than enough detail without additional options.
/proc and /dev Filesystems
The /proc
filesystem is a pseudo-filesystem. The idea behind pseudo-filesystems is these are hierarchical directory structures that are built at system startup, maintained while the system is running, and destroyed at shutdown. They are constructs that are held in memory. This has the keen benefit of not restricting a system from booting should the pseudo-filesystem somehow become corrupted.
The /dev
filesystem is a hierarchy of installed devices that are made available to application software. With the correct permissions and authority, your application software can manage devices through this entry point.
Another pseudo-filesystem is /sys
. This along with /proc
and /dev
are defined as part of the FHS (Filesystem Hierarchy Standard).
We will delve into just a few files to help get you started in finding hardware details.
Pathname | Purpose |
---|---|
/proc |
This is the root of the /proc tree. Beneath this location is a treasure trove of details about running processes and some system hardware. |
/proc/cpuinfo |
Returns the respective details of the CPUs and Memory installed in the running system. Compare this to lscpu and lsmem . |
/sys |
This is the root of the /sys tree. Below this location is significantly more detailed information regarding system hardware. |
/sys/block |
Returns the details of the system block devices. |
/dev |
This is the root of the /dev device tree. This is NOT a pseudo-filesystem. |
/dev/disk/by-path |
Contains the details of configured disks and partitions. This shows how they are connected to their respective buses. This is similar to /sys/block with less detail. |
/dev/sda* |
All of the disk and partition details of the first installed disk. |
Table 2: Linux pathnames that reveal additional hardware information.
The way to use these files varies between displaying their contents (cat
) and showing a file listing (ls -l
or ll
). Some examples are shown below.
cat /proc/cpuinfo
cat /proc/meminfo
ll /sys/block
ll /dev/disk/by-path
ll /dev/sd*
Windows 10 and Server 2019
Windows offers a variety of commands that can be run at the command prompt and in PowerShell.
powershell
. In Windows 2019, it’s usually one of the tiles. Windows 10 does not generally have this as a default.
You do not need to launch the full ISE even though Windows will show it as the best match.
Command Prompt | Purpose |
---|---|
systeminfo |
Provides an overview of the base system hardware and OS version. (This can also be used in the PowerShell command line interface.) |
set |
Returns the current system-wide defines set of environment variables that describe |
Table 3: Windows commands for use in the command shell.
PowerShell | Purpose |
---|---|
Get-Volume |
Returns the details of the PCI buses in the running system. This can be helpful in determining the bus ID for adapters. |
Get-Disk |
Returns the brief details of the installed disks. |
Get-PhysicalDisk |
Returns the larger details of the installed physical disks. |
Get-CimInstance |
Returns the details of object(s) in the Common Information Model (CIM). |
Get-NetAdapter |
Returns the details of installed network adapters. |
Get-NetIPConfiguration |
Returns the details of the IP settings for installed adapters. |
Table 4: Windows PowerShell commands for revealing hardware details.
Below are a few examples of their use. Pipelines are often used to help with addition formatting as in the use of fl
which is an alias of Format-List
. Also note the use of select
which is an alias for Select-Object
which is used to trim down what is reported.
Get-CimInstance -ClassName Win32_Processor | select dev*,name,num* | fl
Get-CimInstance -Classname Win32_SCSIController | fl
Get-Volume | fl
Get-Disk | fl
Get-PhysicalDisk | fl
Get-NetAdapter
Get-NetIPConfiguration
What to submit?
You will build a Word document (or PDF) consisting of screenshots and written details of what they represent. Compare the VMware screenshots with those you get from the VM consoles.
The idea is to find the (in)consistencies between what VMware says it delivers to the guest OS and what the guest actually sees.
Use your imagination: describe in your own words, make itemized lists, draw arrows/lines connecting bits between VMware and the guest OS.
Submit the completed research to the Learning Management System.