58

In DOS, I switch between different drives by typing c:, d:, e: and so forth. But it doesn't work that way in Linux.

Could anyone please tell me how to switch between different drives?

2
  • 1
    yep.. using linux for the first time. hav to learn a lot
    – saiy2k
    Feb 2, 2012 at 6:37
  • Just to clarify as this is a usual misconception causing more trouble in understanding: DOSBox is an emulator, cmd.exe a command-line interpreter for non-DOS based Windows releases and COMMAND.COM a system shell for DOS. While user interaction with these programs and the appearance may be similar, they are not the same.
    – LiveWireBT
    Dec 13, 2014 at 13:19

7 Answers 7

36

Linux doesn't really have a way to work with "drives", per se, except with system utilities that access partitions; they often need to specify the drive that contains the partition. But if your drives each only have one partition, it doesn't really matter.

Anyway, to access a drive, you actually need to specify the partition in some way, usually by a definition like /dev/sda1 (1st partition on 1st drive) or /dev/sda2 (2nd partition on first drive). Using the Disk Utility or gparted, you can see all the partitions graphically. If you're only using the terminal, I've found that the command "blkid" is handy to list the drives with their UUIDs. I use the form:

sudo blkid -c /dev/null

Using the terminal, you need to mount a partition to actually use it. This is actually pretty easy to do. In most cases, you would want to use an empty directory as the "mount point"; if the directory is not empty, its contents will be masked and unavailable during the mount. This may be useful in certain circumstances, such as testing or temporarily changing a configuration for some other reason, as it will alleviate the need to rename or delete the current contents.

If you have a directory named /mnt/drive2 (/mnt is commonly used, but it can be in your home directory if you want), and your drive is /dev/sdb, with a single partition, then the simplest command is:

sudo mount -t type /dev/sdb1 /mnt/drive2

where "type" is the type shown in the blkid command, such as ntfs, ext4, etc.

EDIT: to experiment, don't be afraid to try the mount command. It is only temporary until you reboot (or unmount using the "umount" command). To make it permanent, you need to enter it into /etc/fstab. If you want to do that, you can experiment by creating an entry, then using the command "mount -a" to mount everything in /etc/fstab. If there are errors, it will tell you, and you can correct and repeat until it works.

4
  • 1
    The first partition of the first drive is sda1, there is no sda0
    – enzotib
    Feb 1, 2012 at 19:06
  • Oops, sorry, you're right. I've gotten so used to using UUIDs that I forgot that. And since I have a lot of partitions, I always have to look them up to see which one to use, so I don't think about it. I'll edit my answer, but make a note of it so your comment won't look out of place. Feb 1, 2012 at 19:28
  • For Debian everything is inside mnt directory cd mnt/<your_drive>/<your_directory>. For example cd mnt/d/Github
    – Wahab Shah
    Jan 20, 2022 at 11:28
  • @WahabShah: Well, not everything. Perhaps just drives that are mounted automatically - I don't use Debian, so I'm not sure. But this post never mentioned anything other than /mnt anyway, so your comment doesn't really fit anyway. Jan 21, 2022 at 19:13
20

Ubuntu keeps all additional disks mounted in the /media directory, so use

cd /media/$USER/<your-drive-name>
2
  • Like the answer below, the directory is cd /media/$USER/<your drive name>.
    – Bobort
    Sep 13, 2018 at 20:26
  • For Debian everything is inside mnt directory cd mnt/<your_drive>/<your_directory>. For example cd mnt/d/Github
    – Wahab Shah
    Jan 20, 2022 at 11:27
14

Hard disks (drives, as you call them) contain partitions, and each partition contain a filesystem.

In Linux and Unix there is a main filesystem called root filesystem, and indicated with /. Other filesystems (real or virtual) are mounted on the root filesystem on a mount point, i.e. an empty directory used as a start point for the specific filesystem, in such a way that all files can be reached as descendant of the root directory.

If you type the command mount without option, you would see something like the following:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=764668k,nr_inodes=191167,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=153392k,mode=755)
/dev/sda5 on / type ext4 (rw,noatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=306784k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,relatime,size=306784k)
/dev/sda7 on /media/data type ext4 (rw,noatime,user_xattr,acl,barrier=1,data=ordered)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
XXX.XXX.163.168:/media/data/ on /media/data/mnt type nfs4 (rw,nosuid,noexec,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=XXX.XXX.163.76,minorversion=0,local_lock=none,addr=XXX.XXX.163.168)
gvfs-fuse-daemon on /home/enzotib/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

where you can see that the partition /dev/sda5 (5th partition of the hard disk /dev/sda) is mounted on /, so that it is the root partition.
Furthermore, you see /dev/sda7, another partition/filesystem, mounted on /media/data, so that cd /media/data effectively correspond to d: in the windows terminology.

There are many other mounted filesystem in this output, as you can see, and are all virtual filesystem, i.e. filesystem not corresponding to a disk partition. And you can see an NFS-mounted filesystem, a virtual filesystem linked to a real filesystem available on another machine through the network (the line of output where you see an IP address in part deliberately obscured by me).

You can see the simplicity of having a single structure to access all your files, and in some cases also remote files.

Related questions:

3
  • 1
    Using lsblk may be a bit easier to read and only lists block storage devices (no sysfs, proc, cgroup, etc.).
    – LiveWireBT
    Dec 13, 2014 at 13:06
  • cd ~ to get back to home directory
    – Aakash
    Feb 16, 2017 at 6:14
  • 1
    @AakashShah: cd ~ is a short version of cd, that do the same thing.
    – enzotib
    Feb 18, 2017 at 18:05
9

it's easy

cd /media/$USER/{the name of the drive}

in the future, if you forget it, just go to the drive with your files manager choose a random folder then right click on a blank area -> properties then see the "location"

5

You can also just browse to the folder on the drive you want and right-click, open in terminal.

0

Ubuntu can use, from your home directory (eliminate the < and > and replace "yourusername" with your actual username you logged into Linux with, "drive name" with the name of your hard disk).

cd /media/<yourusername>/<drive name>

All mounted disks are in that /media/yourusername/ directory . If you do not know the drive name, you can always look in your file manager -or- through the terminal (again from your home directory)

ls /media/<yourname>/

You can use the sd# and mnt described; however, I think you were looking for an easy answer.

1
  • The commands you've provided use absolute paths and are not required to be run from within the user's home directory.
    – jkt123
    Apr 23, 2014 at 2:30
0

Actually, for me it's like this:

cd /media/<user>/New\ Volume/

With New Volume being the name of the external drive. and user being my username.

Don't know why the backward slash, I assume because of the space?

3
  • 2
    Yes, it's because of the space.
    – muru
    Dec 23, 2015 at 8:01
  • 1
    Yes, I would avoid using Spaces in folder names or disk names or even file names. Just use CamelCase.
    – Bobort
    Sep 13, 2018 at 20:27
  • Unless you're in a live business environment: Definitely use spaces in directory names! Force yourself to learn! If the system breaks? FIX IT! Progress is not the territory of cowards.
    – John
    Mar 30, 2021 at 1:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .