linux中挂载新硬盘到目录,并开机自动挂载例子

www.111cn.net 更新:2015-03-10 编辑:yahoo 来源:转载
挂载硬盘对于linux系统来讲是一个比较常见的问题了,下面我们来看看linux中挂载新硬盘到目录,并开机自动挂载例子紧,


今天,在整理图片时,发现根目录硬盘空间已经所剩无几了,而网站和所有相关文件主要放置在根下data目录(/data)里,但/home下是有空间,而又不想把文件放到/home下面去,只有再加一个新硬盘,对以后/data目录的文件管理也比较好。

那么就先关掉主机,再加上新硬盘(其它电脑使用过的500G硬盘),插上后再启动电脑。

接下来,就开始工作了:

1. 查看硬盘信息:

feigo@figo:~$ sudo df -h
文件系统                                                容量  已用  可用 已用% 挂载点
rootfs                                                  102G   92G  4.7G   96% /
udev                                                     10M     0   10M    0% /dev
tmpfs                                                   799M  1.8M  798M    1% /run
/dev/disk/by-uuid/3640f24a-4870-42e2-ae07-109cb9c35164  102G   92G  4.7G   96% /
tmpfs                                                   5.0M     0  5.0M    0% /run/lock
tmpfs                                                   4.6G  224K  4.6G    1% /run/shm
/dev/sda7                                                92M   26M   62M   30% /boot
/dev/sda9                                               201G   23G  169G   12% /home
feigo@figo:~$ sudo fdisk -l
 
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3f1e271a
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63   102414374    51207156    7  HPFS/NTFS/exFAT
/dev/sdb2       102414375   976768064   437176845    f  W95 Ext'd (LBA)
/dev/sdb5       102414438   409625369   153605466    b  W95 FAT32
/dev/sdb6       409625433   716836364   153605466    b  W95 FAT32
/dev/sdb7       716836428   976768064   129965818+   7  HPFS/NTFS/exFAT
 
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc35aebd4
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   104872319    52436128+   7  HPFS/NTFS/exFAT
/dev/sda2       104872381   976771071   435949345+   f  W95 Ext'd (LBA)
/dev/sda5       104872383   231962534    63545076    7  HPFS/NTFS/exFAT
/dev/sda6       231962598   300929579    34483491    b  W95 FAT32
/dev/sda7       300931072   301125631       97280   83  Linux
/dev/sda8       301127680   517726207   108299264   83  Linux
/dev/sda9       517728256   945461247   213866496   83  Linux
/dev/sda10      945463296   976771071    15653888   82  Linux swap / Solaris
我们可以看到有两个硬盘,sda和sdb,其中sda是目前使用中的硬盘,sdb是新加上去的硬盘。

2. 针对sdb创建新硬盘分区:

先说明一下,fdisk 可以用 m 命令来看 fdisk 命令的内部命令:
a :命令指定启动分区
d :命令删除一个存在的分区
l :命令显示分区 ID 号的列表
m :查看 fdisk 命令帮助
n :命令创建一个新分区
p :命令显示分区列表
t :命令修改分区的类型 ID 号
w :命令是将对分区表的修改存盘让它发生作用
feigo@figo:~$ su
密码:
root@figo:/home/feigo# fdisk /dev/sdb
 
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
由于sdb硬盘上已经有几个分区,人们需要先删除这些分区:
Command (m for help): d                # 删除分区,依次输入数字
Partition number (1-7): 7
 
Command (m for help): d
Partition number (1-6): 6
 
Command (m for help): d
Partition number (1-5): 5
 
Command (m for help): d
Partition number (1-5): 2
 
Command (m for help): d
Selected partition 1
 
Command (m for help): w                    # 保存
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

再次查看硬盘分区信息,将会看到所有分区已被删除:
root@figo:/home/feigo# fdisk -l
 
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3f1e271a
 
   Device Boot      Start         End      Blocks   Id  System
 
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc35aebd4
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   104872319    52436128+   7  HPFS/NTFS/exFAT
/dev/sda2       104872381   976771071   435949345+   f  W95 Ext'd (LBA)
/dev/sda5       104872383   231962534    63545076    7  HPFS/NTFS/exFAT
/dev/sda6       231962598   300929579    34483491    b  W95 FAT32
/dev/sda7       300931072   301125631       97280   83  Linux
/dev/sda8       301127680   517726207   108299264   83  Linux
/dev/sda9       517728256   945461247   213866496   83  Linux
/dev/sda10      945463296   976771071    15653888   82  Linux swap / Solaris

在之前的命令列表上面看到,n代表创建新硬盘分区,那么接下我们输入n命令来创建新分区:
root@figo:/home/feigo# fdisk /dev/sdb
 
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-976773167, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-976773167, default 976773167):
Using default value 976773167
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
完成,再查看,已经发现多了一个sdb1的分区:
root@figo:/home/feigo# fdisk -l
 
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
81 heads, 63 sectors/track, 191411 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3f1e271a
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   976773167   488385560   83  Linux
 
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc35aebd4
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   104872319    52436128+   7  HPFS/NTFS/exFAT
/dev/sda2       104872381   976771071   435949345+   f  W95 Ext'd (LBA)
/dev/sda5       104872383   231962534    63545076    7  HPFS/NTFS/exFAT
/dev/sda6       231962598   300929579    34483491    b  W95 FAT32
/dev/sda7       300931072   301125631       97280   83  Linux
/dev/sda8       301127680   517726207   108299264   83  Linux
/dev/sda9       517728256   945461247   213866496   83  Linux
/dev/sda10      945463296   976771071    15653888   82  Linux swap / Solaris

3. 格式化分区为ext4:

root@figo:/home/feigo# mkfs.ext4 /dev/sdb1
mke2fs 1.42.5 (29-Jul-2012)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
30531584 inodes, 122096390 blocks
6104819 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
3727 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
 102400000
 
Allocating group tables: 完成                           
正在写入inode表: 完成                           
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
格式化完成,可以使用parted命令查看/dev/sdb的分区格式:
root@figo:/home/feigo# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                            
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  check NUMBER                             do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
  move NUMBER START END                    move partition NUMBER
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resize NUMBER START END                  resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) select /dev/sdb                                                 
Using /dev/sdb
(parted) print                                                           
Model: ATA ST3500413AS (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 
Number  Start   End    Size   Type     File system  Flags
 1      1049kB  500GB  500GB  primary  ext4
 
(parted) quit
其中上面parted的内部命令:
help 代表帮助,将会打印所有内部命令
select /dev/sdb 代表切换到硬盘sdb
print 代表打印分区文件系统类型
quit 代表退出

那么我们已经知道了sdb已被格式化为ext4,接下来就要挂载硬盘来目录了:

root@figo:/home/feigo# mkdir /data1
root@figo:/home/feigo# mount /dev/sdb1 /data1
root@figo:/home/feigo# df -Th
文件系统                                               类型      容量  已用  可用 已用% 挂载点
rootfs                                                 rootfs    102G   93G  4.5G   96% /
udev                                                   devtmpfs   10M     0   10M    0% /dev
tmpfs                                                  tmpfs     799M  3.0M  796M    1% /run
/dev/disk/by-uuid/3640f24a-4870-42e2-ae07-109cb9c35164 ext4      102G   93G  4.5G   96% /
tmpfs                                                  tmpfs     5.0M     0  5.0M    0% /run/lock
tmpfs                                                  tmpfs     4.6G  376K  4.6G    1% /run/shm
/dev/sda7                                              ext4       92M   26M   62M   30% /boot
/dev/sda9                                              ext4      201G   23G  169G   12% /home
/dev/sdb1                                              ext4      459G  198M  435G    1% /data1
可以看到/dev/sdb1已经被挂载到/data1下了,剩余的工作就是迁移数据了。

4. 最后一步就是实现开机自动挂载/dev/sdb1到/data1下:

编辑/etc/fstab文件,加入下面两行内容:

root@figo:/home/feigo# vi /etc/fstab
# load /dev/sdb1 to /data1 when the system startup
/dev/sdb1 /data1                                          ext4    defaults        1       2

然后再用mount -a确定/etc/fstab设置没有错误,再用mount查看已挂载的设备:

root@figo:/home/feigo# mount -a
root@figo:/home/feigo# mount
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=10240k,nr_inodes=1020978,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=818060k,mode=755)
/dev/disk/by-uuid/3640f24a-4870-42e2-ae07-109cb9c35164 on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=4766880k)
/dev/sda7 on /boot type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
/dev/sda9 on /home type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
/dev/sdb1 on /data1 type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)