Updated: 2014-04-14 14:29 EDT

1 Due Date and DeliverablesIndexup to index

Do not print this assignment on paper!

2 Purpose of this AssignmentIndexup to index

Do not print this assignment on paper! On paper, you cannot follow any of the hyperlink URLs that lead you to hints and course notes relevant to answering a question.

  1. Review the Booting and GRUB commands in the Class Notes.
  2. Practice managing Booting and GRUB and run levels in your own virtual machine.

3 Introduction and OverviewIndexup to index

This is an overview of how you are expected to complete this assignment. Read all the words before you start working.

Do not print this assignment on paper. On paper, you cannot follow any of the hyperlink URLs that lead you to hints and course notes relevant to answering a question. You also don’t get any of the later updates to the assignment. Do not print this assignment on paper.

  1. Complete the readings in your weekly Class Notes.
  2. Complete the Tasks listed below, in order.
  3. Verify your own work before running the Checking Program.
  4. Run the Checking Program to help you find errors.
  5. Submit the output of the Checking Program to Blackboard before the due date.
  6. READ ALL THE WORDS to work effectively and not waste time.

You will create filesystem structure in your CLS home directory containing various directories and files. You will also make changes in your own Linux Virtual Machine running CentOS 6.5. You can use the Checking Program to check your work as you do the tasks. You can check your work with the checking program as often as you like before you submit your final mark. Some task sections below require you to finish the whole section before running the checking program; you may not always be able to run the checking program successfully after every single task step.

When you are finished the tasks, leave the files and directories in place on both the CLS and your own Linux Virtual Machine as part of your deliverables. Do not delete any assignment work until after the term is over! Assignments may be re-marked at any time on the CLS; you must have your term work available on the CLS right until term end.

Since I also do manual marking of student assignments, your final mark may not be the same as the mark submitted using the current version of the Checking Program. I do not guarantee that any version of the Checking Program will find all the errors in your work. Complete your assignments according to the specifications, not according to the incomplete set of mistakes detected by the Checking Program.

3.1 Searching the course notesIndexup to index

The current term’s course notes are always available on the Internet here: CST8207 GNU/Linux Operating Systems I.

All the current and previous terms notes files are also stored on the CLS. You can learn about how to read and search these files using the command line on the CLS under the heading Copies of the CST8207 course notes near the bottom of the page Course Linux Server.

3.2 The CLS Source DirectoryIndexup to index

All references to the “Source Directory” below are to the CLS directory ~idallen/cst8207/13f/assignment14/ and that name starts with a tilde character ~ followed by a userid with no intervening slash. The leading tilde indicates to the shell that the pathname starts with the HOME directory of the account idallen (seven letters).

You do not have permission to list the names of all the files in the Source Directory, but you can access any files whose names you already know.

3.3 Commands, topics, and features coveredIndexup to index

Review course notes Booting and GRUB.

Use the on-line help (man command) for the commands listed below for more information.

3.4 Correct user, command lines, and command outputIndexup to index

3.5 Backup and Recovery on CentOSIndexup to index

  1. Take a snapshot of your virtual machine before you begin each section of this lab so that you can recover back to the snapshot if needed.
    • You can delete the unused snapshots if everything works well.
    • CentOS snapshots are very small and fast compared to your Windows snapshots; you can save lots of them.
  2. Are you keeping an external backup copy of all your coursework (including your virtual machines) somewhere? You should be!

3.6 Use a remote login, not the VMware consoleIndexup to index

I recommend that once you have booted your CentOS VM, you connect to it and work using a remote login session (e.g. ssh or PuTTY) where copy-and-paste works and where you can have multiple simultaneous connections into the VM. The VMware console is not friendly.

If you can’t get an SSH (PuTTY or ssh) connection working into your Linux VM, see the Network Diagnostics page.

Note that SSH sessions (and whatever you are doing inside them) do not survive across a VMware suspend. Make sure you save your editor files and exit your SSH session before you pause or suspend your virtual machine. (Editor sessions that run inside the VMware console do survive across suspend and resume, since they don’t depend on a network connection.)

Advanced users may look into the various virtual terminal programs such as tmux and screen that do allow you to suspend and resume your sessions even from a remote login.

3.7 The Answer File answer.txtIndexup to index

Where you are required to record or save a command line or its output into The Answer File, do the command and then copy and record the command line or its output as a separate line into an answer.txt file in your CentOS assignment14 directory. You will be told how many lines to save in the file.

If you can’t answer a question, leave a blank line in this answer file. (The vim option :set number may be useful to you as you edit.)

You can use either nl or cat -n to show the contents of a file with line numbers, to make sure each answer is on its correct line number.

4 TasksIndexup to index

4.1 Set Up – The Base Directory on the CLSIndexup to index

  1. Do a Remote Login to the Course Linux Server (CLS) from any existing computer, using the host name appropriate for whether you are on-campus or off-campus.

  2. Create the CLS directory ~/CST8207-14W/Assignments/assignment14

  3. Create the check symbolic link needed to run the Checking Program, as described in the section Part II - Check and Submit below.

Run Part II - Check and Submit to verify your work so far.

4.2 CentOS: SnapshotIndexup to index

  1. Complete your CentOS Virtual Machine Installation and Verification.
    • Make sure it passes the checks for disk sizes and package counts.
    • Complete these critical system administration tasks required in Assignment #08 and Assignment #12:
      1. Create your own personal sysadmin account.
      2. Install and configure the NTP package.
  2. Before you begin this assignment, create a snapshot of your CentOS Virtual Machine.
    • Enter a comment explaining where and when you took this snapshot.
    • You can restore back to this snapshot if anything goes wrong.

4.3 CentOS: Set Up – The Base Directory on CentOSIndexup to index

  1. In your own account in your CentOS Virtual Machine, also make the directory ~/CST8207-14W/Assignments/assignment14 (the same hierarchy as you have already made on the CLS).

This CentOS assignmment14 directory is the base directory for all pathnames in this assignment. Store your CentOS files and answers below in this base assignment14 directory.

Run the Fetch and Checking Program to verify your work so far.

4.4 Using a different GRUB configuration fileIndexup to index

Review Booting and GRUB.

You can select a different GRUB configuration file at boot time.

  1. Record the number of lines in a standard Linux boot menu entry as Line 1 in The Answer File (one number).

  2. In your running CentOS VM, copy the current GRUB configuration file to a new file named myconfig in its same grub directory.
    • Record the Linux absolute pathname of the new file as Line 2 in The Answer File.
  3. Edit the myconfig file:
    1. On the title line of the only boot menu entry in the file, change the word CentOS to MY OWN CentOS
    2. Save the myconfig file.
  4. Compare the current GRUB configuration file with the new myconfig GRUB configuration file. The new file should have two more words. A file difference using the diff command should show the one line change:

    $ diff grub.conf myconfig
    14c14
    < title CentOS (2.6.32-431.el6.i686)
    ---
    > title MY OWN CentOS (2.6.32-431.el6.i686)

4.4.1 Previewing a new GRUB configuration fileIndexup to index

You can preview much of a GRUB configuration file from multi-user mode without having to reboot the system to test it, but you can’t actually select a new kernel until you reboot.

  1. Record as Line 3 in The Answer File a GRUB pathname (using GRUB syntax) that refers to your new myconfig GRUB configuration file in its correct partition.
    • Recall that GRUB pathnames start with a device (partition).
    • You need to turn the Linux partition name into a GRUB name.
    • The resulting path name will be in the GRUB form: (xxx,x)/xxxxx
    • You will need this GRUB pathname shortly.
  2. GRUB can be run as a shell-like utility that has many built-in commands. Start the command-line GRUB utility by running the command named grub as root from your shell without rebooting the machine. When you run this grub command you will see a grub> prompt:

    # grub
    Probing devices to guess BIOS drives. This may take a long time.
    
        GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
    
     [ Minimal BASH-like line editing is supported.  For the first word, TAB
       lists possible command completions.  Anywhere else TAB lists the possible
       completions of a device/filename.]
    grub> 

    The comments about TAB completion don’t apply to this command-line version of GRUB. (Sorry – this is a bug!) TAB only works when GRUB is run at boot time as the boot loader.

  3. Type help at thegrub> prompt to see a partial list of GRUB utility commands. You can also type help commandname to get a bit more help on commandname
    • Note which GRUB command will quit GRUB and return you to your BASH shell prompt. (^C will also terminate this GRUB utility.)
    • Note which GRUB command will load a new configuration file. (You will need this command name shortly.)
    • Note (and try) which GRUB command will display partitions on a disk:

      grub> geometry (hd0)
      drive 0x80: C/H/S = 261/255/63, The number of sectors = 4194304, /dev/sda
         Partition num: 0,  Filesystem type is ext2fs, partition type 0x83
         Partition num: 1,  Filesystem type unknown, partition type 0x82
      
      grub> geometry (hd1)
      drive 0x81: C/H/S = 130/255/63, The number of sectors = 2097152, /dev/sdb
         Partition num: 0,  Filesystem type is ext2fs, partition type 0x83
         Partition num: 1,  Filesystem type is ext2fs, partition type 0x83
         Partition num: 3,  Filesystem type is fat, partition type 0xc
         Partition num: 4,  Filesystem type unknown, partition type 0x82
         Partition num: 5,  Filesystem type unknown, partition type 0x7

    GRUB is not very intelligent about the file systems inside partitions. Above, it mistakes both ext3 and ext4 file systems as type ext2fs. (You can actually mount both ext3 and ext4 file systems as type ext2 and the journalling feature will be disabled. Don’t do it!)

    • Note (and try) which GRUB command displays (and sets) the current partition/device prefix, and which command displays a text file:

      grub> cat /etc/hosts
      Error 1: Invalid device requested
      
      grub> root
       (fd0): Filesystem type unknown, partition type 0x0
      
      grub> root (hd0,0)
       Filesystem type is ext2fs, partition type 0x83
      
      grub> root
       (hd0,0): Filesystem type is ext2fs, partition type 0x83
      
      grub> cat /etc/hosts
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
      127.0.0.2   abcd0001
      ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. Choose the GRUB utility command that loads a configuration file and run that command now with an argument that is your new myconfig file name:
    • The configuration file name must be given in full GRUB pathname form, including the partition name, just as you recorded earlier.
    • As a file name argument to the configfile command you will need to specify both the partition and the pathname to the new GRUB configuration file you edited above.
    • The errors Invalid device requested and/or Cannot mount selected partition mean you didn’t get the GRUB partition part of the pathname correct.
    • The error File not found means you didn’t get the pathname inside the partition correct.
    • The error Selected disk does not exist might mean you don’t have enough permissions – what user is supposed to be running this GRUB utility?
    • Keep trying until you get it right and you see the output below:
  5. When you get the configfile command and GRUB pathname to your myconfig file right, you will see output similar to this:

        GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
    -------------------------------------------------------------------
     0: MY OWN CentOS (2.6.32-431.el6.i686)
    -------------------------------------------------------------------
          Use the ^ and v keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, 'a' to modify the kernel arguments
          before booting, or 'c' for a command-line.

    Ignore the information about which keys work – none of these keys work in this command-line version of GRUB. The keys only work after a reboot in the boot loader version of GRUB. We are only using GRUB in command-line mode to preview our GRUB menu to make sure it works.

  6. When you see the expected MY OWN CentOS menu, break out of (interrupt) the GRUB utility and return to the BASH shell prompt.
    • You have confirmed that your new GRUB configuration file works.
    • You cannot actually select and run any boot menu entries in the command-line version of GRUB. To actually select a kernel, you would have to reboot into the real GRUB boot loader, but don’t do that yet.
    • If you don’t see the MY OWN CentOS menu, edit and fix the myconfig file until you do.

4.4.2 Run the new GRUB configuration fileIndexup to index

  1. When you have successfully previewed your new GRUB configuration file above and you see your MY OWN CentOS menu entry, as shown above, you are ready to try your new file in the real GRUB boot process:
    1. Safely reboot your CentOS VM into the standard GRUB menu (the one that doesn’t have your changes).
    2. As you did before, interrupt the GRUB countdown timer.
    3. Follow the GRUB directions on your screen and type the correct letter key to start up a GRUB command line. GRUB will then prompt with the usual grub> prompt.
    4. At the grub> prompt, use the exact same configfile line you used earlier to select your new myconfig GRUB configuration file. (In this boot loader version of GRUB, TAB completion now works for both GRUB command names, disk names, partition names, and file names. Use TAB to help you type the correct GRUB command line.)
    5. When you load your new configuration file inside the boot loader version of GRUB, you should see your MY OWN CentOS menu entry, like this:
CentOS 6 myconfig configuration file

CentOS 6 myconfig configuration file

  1. Let the time out expire to boot your system, or use the [Enter] key.

Run the Fetch and Checking Program to verify your work so far.

4.5 Configure a second GRUB boot menuIndexup to index

Your current CentOS GRUB configuration file contains only a single boot menu entry for one Linux kernel. We will now create a new GRUB configuration file with a second boot menu entry.

  1. In your running CentOS VM, copy your myconfig configuration file to a new file named newconfig in its same grub directory.
    • Record the Linux absolute pathname of the new file as Line 4 in The Answer File.
  2. Edit the newconfig file to create a second boot menu entry that will boot the machine single-user as follows:
    1. Copy the existing four-line boot menu entry in the file and create a new four-line boot menu entry below it. (Copy and paste four lines in the file. In vim put your cursor on the first line to copy and type 4yyP.)
      • The new four-line boot menu entry must start out as an exact copy of the original four-line boot menu entry.
      • Do not make any changes to the first four-line boot menu entry.
    2. On the title line of the second boot menu entry change the word CentOS to single user CentOS
    3. In the second boot menu entry add the kernel option to boot in single-user mode, just as you did earlier when booting single-user from the live GRUB menu.
    4. Save your changes. Your new newconfig configuration file will now be four lines longer than the myconfig file:

      $ wc -l myconfig newconfig 
        17 myconfig
        21 newconfig
  3. To make sure your newconfig file works before you reboot, preview your configuration file changes using the grub utility run from the shell as you did before. You should see this two-line menu as preview output when you load your newconfig configuration file into GRUB:

        GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
    -------------------------------------------------------------------
     0: MY OWN CentOS (2.6.32-431.el6.i686)
     1: MY OWN single user CentOS (2.6.32-431.el6.i686)
    -------------------------------------------------------------------
  4. When you have the preview working, safely reboot and run your new GRUB newconfig configuration file using the same method as you did earlier to run the myconfig file.
    • Make sure you see two choices in your GRUB menu now:
CentOS 6 newconfig configuration file

CentOS 6 newconfig configuration file

  1. Select the single-user choice. It must boot the machine into the single-user root shell with no password required.

  2. Leave single-user mode and continue the boot process into standard multi-user mode (with a login prompt).

  3. In multi-user mode, log in as your sysadmin account (optionally use an SSH login, not the terrible console window).

Run the Fetch and Checking Program to verify your work so far.

4.6 Changing System V Run Levels and ServicesIndexup to index

See the course notes on Legacy Run Levels and Services. As with most system maintenance activities, you will need to use the root user to run the privileged commands in this section.

  1. If not already logged in, log in to the CentOS VM console (not via SSH) as your ordinary (non-root) sysadmin account.
    • You will see console messages if you are logged in to the console, which you will not see using an SSH terminal connection.
  2. Use a command to list all services and all run level information into file chkconfig-before.txt in your CentOS assignment14 directory. It should be approximately 22 lines. Two of the lines should look like this:

    ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off
    postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
  3. Use the same command name to enable (turn on) the NTP Date service only in Run Level 4 (a normally unused Run Level in CentOS).

  4. Use the same command name to disable (turn off) the above Postfix Mail Service service in Run Level 4.

  5. Save a second listing of all services and all run levels into file chkconfig-after.txt in your CentOS assignment14 directory. It should still be approximately 22 lines. Two of the lines should now look like this:

    ntpdate         0:off   1:off   2:off   3:off   4:on    5:off   6:off
    postfix         0:off   1:off   2:on    3:on    4:off   5:on    6:off
  6. Use the diff command to compare the before listing file with the after listing file. Only two lines should have changed.

  7. Run a command to show a full list of all processes for all users, BSD format, text user name (not numeric UID), full wide listing (not truncated at all) and search for any lines containing the string postfix.
    • You will see about three or four lines.
    • Save those three or four lines into a postfix.txt file.
  8. Record as Line 5 in The Answer File the Linux absolute pathname of the system configuration file that gives the default Run Level for your CentOS system.

  9. Record as Line 6 in The Answer File the one line from the above system configuration file that sets the default Run Level for your CentOS system. (Hint: It’s the only non-comment line in the file!)

  10. Use a command to confirm that your current Run Level is the same as the CentOS default Run Level. (This should be true unless you are running in single-user mode, which you should not be.)

  11. On the system console, use a command to change from the current Run Level (which should be the default) to Run Level 4. You will see (only if logged in on the console) various status messages about services that stop and start:
    • The Postfix service will announce that it is shutting down.
    • The udev event manager will retrigger some events.
    • The ntpdate service will try to synchronize the time, and fail.
  12. Use the command that displays the previous and current Run Level (two words on one line) and record this line of output as Line 7 in The Answer File.

  13. In a system log file, find the reason that the ntpdate service did not work:
    • How do you know which System Log Files were modified most recently? Those log files are the files you should look in for the log message.
    • The message from ntpdate talks about a socket being in use.
    • When you find the right log file name, record the Linux absolute pathname of the correct log file as Line 8 in The Answer File.
    • Record this last ntpdate log message as Line 9 in The Answer File.
  14. Run a command to show a full list of all processes for all users, BSD format, text user name (not numeric UID), full wide listing (not truncated at all) and again search for any processes running as the postfix userid.
    • No processes running as the postfix userid will be found. (You might see a process run by you, searching for postfix.)
  15. On the system console, use a command to change from the current Run Level 4 back to the CentOS system default Run Level. You will again see (only if logged in on the console) various status messages about services that stop and start:
    • The udev event manager will retrigger some events.
    • The Postfix service will announce that it is starting.
  16. Use the command that displays the previous and current Run Level (two words on one line) and record this line of output as Line 10 in The Answer File.

  17. Confirm that the postfix processes are again running.

Run the Fetch and Checking Program to verify your work so far.

4.7 Manually Starting/Stopping ServicesIndexup to index

See the section on Starting and Stopping Services in the Booting and GRUB page. As with most system maintenance activities, you will need to use the root user to run the privileged commands in this section.

  1. Make sure your system is running as the default CentOS Run Level.

  2. Use a command to ask for the service status of the postfix service:
    • The output of the command will include the pid of the service and say that it is running.
    • Record the one line of output (with the pid) as Line 11 in The Answer File.
  3. Use a command to stop the postfix service:
    • You will see one line of logging information saying: Shutting down postfix: [ OK ]
  4. Use a command to ask for the service status of the postfix service:
    • The output of the command will say that the service is stopped.
    • Record the one line of output from the command as Line 12 in The Answer File. (Record the stopped output line from the status command, not the Shutting down logging information.)
  5. Use a command to start the postfix service:
    • You will see one line of logging information saying: Starting postfix: [ OK ]
  6. Use a command to try to start the ntpdate service:
    • You will see one line of logging information saying: [FAILED]
    • The system log file will tell you why it failed.

Run the Fetch and Checking Program to verify your work so far.

4.8 When you are All DoneIndexup to index

That is all the tasks you need to do.

Check your work a final time using the Fetch and Checking Program and save the output on the CLS as described below. Submit your mark following the directions below.

Optional: Keeping your main CentOS Virtual Machine snapshot, remove any intermediate snapshots you no longer require, to free up disk space. - Be careful not to remove your current work!

5 Checking, Marking, and Submitting your WorkIndexup to index

Summary: Do some tasks, then run the Fetch and checking program to verify your work as you go. You can run the Fetch and checking program as often as you want. When you have the best mark, upload the marks file to Blackboard.

Since I also do manual marking of student assignments, your final mark may not be the same as the mark submitted using the current version of the Checking Program. I do not guarantee that any version of the Checking Program will find all the errors in your work. Complete your assignments according to the specifications, not according to the incomplete set of the mistakes detected by the Checking Program.

The checking program resides on the Course Linux Server, but your work is on your CentOS Virtual Machine. There is a Fetch program that you must download and use on your CentOS Virtual Machine to copy information from your CentOS Virtual Machine to your account on the CLS so that the checking program can check it on the CLS.

Once the Fetch program has fetched these files from your Virtual Machine to the CLS, you can run the checking program on the CLS to check what is saved in the files. When you make changes on your CentOS Virtual Machine, you need to run the Fetch program again on CentOS to update the saved files on the CLS.

Simply running the checking program on the CLS will not update the saved files on the CLS. You must run the Fetch program on your CentOS VM when you make changes on your CentOS Virtual Machine.

5.1 Part I - Fetch and CheckIndexup to index

Do all the following steps on your CentOS Virtual Machine. Read through the whole list before you start typing anything. An example of what to type is given below the descriptions that follow.

Failure to read all the words will lock your account out of the CLS.

  1. Log in to CentOS. Use your sysadmin non-root account (same userid as Blackboard).
  2. Create a directory in your sysadmin account named CST8207-14W/Assignments/assignment14 (use the same directory hierarchy as you already have in your own account on the CLS). This is your base directory for this assignment.
  3. Change to the above sysadmin base directory (on CentOS!).
  4. As shown below, use curl to get a copy of the Fetch program from the given URL into a file named do.sh. Make sure you have a file named do.sh in your sysadmin base directory. You only need to download this once per assignment.
  5. Warning: If you printed this page on paper, you may not be able to scroll right to read the whole web URL that you must pass to the curl program.
$ whoami ; hostname ; pwd
abcd0001                                 # your userid, not abcd0001
abcd0001                                 # your userid, not abcd0001
/home/abcd0001/CST8207-14W/Assignments/assignment14
$ url=http://teaching.idallen.com/cst8207/14w/notes/data/assignment14do.sh
$ curl -A mozilla "$url" >do.sh
[... make sure you scroll right to read the full web URL above ...]
[... various download statistics print here ...]

$ fgrep -i 'error' do.sh    # make sure no errors (no output)
$ head -n1 do.sh            # make sure it's a shell script
#!/bin/sh -u
  1. You must run the do.sh script you just downloaded. You must run the script as the root user with the USER environment variable set to your own CLS account userid. (Do not use abcd0001; use your own.) Failure to set the USER= variable as shown below will cause your account to be locked out of the CLS.

    Use su to run the do.sh script:

    $ echo "$USER" ; pwd
    abcd0001                                              # your userid, not abcd0001
    /home/abcd0001/CST8207-14W/Assignments/assignment14   # your userid, not abcd0001
    $ su -c "USER=$USER sh do.sh"   # must be double quotes, not single

    This do.sh script runs a Fetch program that will connect from your CentOS machine to the CLS using your account name in the USER variable. It will copy selected files from your CentOS machine to your assignment14 directory on the CLS. It will then run the checking program on the CLS to check your work. You will need to answer one question about your IP address, and then wait and type in your CLS password, as shown below:

    ---------------------------------------------------------------------------
    abcd0001: FETCH version 3.  Connecting to CLS as USER='abcd0001' using ssh
    ---------------------------------------------------------------------------
    abcd0001: Use local Algonquin IP cst8207-alg.idallen.ca [y/N/?]? n
    abcd0001: Please wait; using ssh to connect to user 'abcd0001' on cst8207.idallen.ca ...
    *** COURSE LINUX SERVER ***
    abcd0001@cst8207.idallen.ca's password:         # enter your CLS password
    ---------------------------------------------------------------------------
    idallen-ubuntu assignment14fetch_server.sh version 9 run by abcd0001.
    Please wait; collecting info from abcd0001 Virtual Machine
    ---------------------------------------------------------------------------
    VM files collected into CST8207-14W/Assignments/assignment14/abcd0001.tar.bz on CLS.
    Now running checking program for abcd0001 on CLS:
    [... checking program output appears here ...]

5.1.1 Notes on the Fetch programIndexup to index

  • This Fetch program copies files and information from your CentOS virtual machine into a tar archive in your account under assignment14 on the CLS and then runs the checking program on the CLS. If you only run the checking program on the CLS, it won’t update the files from your CentOS VM and it will just check the existing files saved under assignment14 on the CLS.
  • The checking program is running on the CLS, not on your CentOS VM. At the start, the checking program will issue messages relevant to your account on the CLS (e.g. errors in your CLS .bashrc file or world-writable files on the CLS). These errors are on the CLS, not on your CentOS machine.

5.2 Part II - Check and SubmitIndexup to index

When you are done with your assignment, you need to run the checking program one last time on the CLS (not from CentOS) and submit the output file, as follows:

Do all this on the Course Linux Server when you are ready to submit:

  1. There is a Checking Program named assignment14check in the Source Directory on the CLS. Create a Symbolic Link to this program named check under your new assignment14 directory on the CLS so that you can easily run the program to check your work and assign your work a mark on the CLS. Note: You can create a symbolic link to this executable program but you do not have permission to read or copy the program file.

  2. Execute the above “check” program on the CLS using its symbolic link. (Review the Search Path notes if you forget how to run a program by pathname from the command line.) This program will check your fetched CentOS work, assign you a mark, and display the output on your screen. (You may want to paginate the long output so you can read all of it.)

    Remember: The checking program does not fetch new files to the CLS from your CentOS VM. You must run the Fetch program on your CentOS VM to update the fetched files on the CLS so that the checking program can mark them on the CLS.

    You may run the “check” program as many times as you wish, to correct mistakes and get the best mark. Some task sections require you to finish the whole section before running the checking program at the end; you may not always be able to run the checking program successfully after every single task step.

  3. When you are done with checking this assignment, and you like what you see on your screen, redirect the output of the Checking Program into the text file assignment14.txt under your assignment14 directory on the CLS. Use the exact name assignment14.txt in your assignment14 directory. Case (upper/lower case letters) matters. Be absolutely accurate, as if your marks depended on it. Do not edit the file.
    • Make sure the file actually contains the output of the checking program!
    • The last text line of the file should begin with: YOUR MARK for
    • Really! MAKE SURE THE FILE HAS YOUR MARKS IN IT!
  4. Transfer the above assignment14.txt file from the CLS to your local computer and verify that the file still contains all the output from the checking program. Do not edit this file! No empty files, please! Edited or damaged files will not be marked. You may want to refer to your File Transfer notes.
    • Make sure the file actually contains the output of the checking program!
    • The last text line of the file should begin with: YOUR MARK for
    • Really! MAKE SURE THE FILE HAS YOUR MARKS IN IT!
  5. Upload the assignment14.txt file under the correct Assignment area on Blackboard (with the exact correct name) before the due date. Upload the file via the assignment14 “Upload Assignment” facility in Blackboard: click on the underlined assignment14 link in Blackboard. Use “Attach File” and “Submit” to upload your plain text file.

    No word-processor documents. Do not send email. Use only “Attach File”. Do not enter any text into the Submission or Comments boxes on Blackboard; I do not read them. Use only the “Attach File” section followed by the Submit button. If you need to comment on any assignment submission, send me email.

    You can upload the file more than once; I only look at the most recent. You must upload the file with the correct name; you cannot correct the name as you upload it to Blackboard.

  6. Verify that Blackboard has received your submission: After using the Submit button, you will see a page titled Review Submission History that will show all your submissions.
    1. Verify that your latest submission has the correct 16-character, lower-case file name beside the Attached Files heading.
    2. The Submission Field and Student Comments headings must be empty. (I do not read them.)
    3. Save a screen capture showing the uploaded file name. If there is an upload missing, you will need this to prove that you uploaded the file. (Blackboard has never lost a file.)

    You will also see the Review Submission History page any time you already have an assignment attempt uploaded and you click on the underlined assignment14 link.

    You cannot delete an assignment attempt, but you can always upload a new version. I only mark the latest version.

  7. Your instructor may also mark files in your directory in your CLS account after the due date. Leave everything there on the CLS. Do not delete any assignment work from the CLS until after the term is over!

READ ALL THE WORDS. OH PLEASE, PLEASE, PLEASE READ ALL THE WORDS!

Author: 
| Ian! D. Allen  -  idallen@idallen.ca  -  Ottawa, Ontario, Canada
| Home Page: http://idallen.com/   Contact Improv: http://contactimprov.ca/
| College professor (Free/Libre GNU+Linux) at: http://teaching.idallen.com/
| Defend digital freedom:  http://eff.org/  and have fun:  http://fools.ca/

Plain Text - plain text version of this page in Pandoc Markdown format

Campaign for non-browser-specific HTML   Valid XHTML 1.0 Transitional   Valid CSS!   Creative Commons by nc sa 3.0   Hacker Ideals Emblem   Author Ian! D. Allen