操作实例:Linux上挂载移动硬盘和IPSAN上的NTFS分区

工作中需要搭建内部网络的yum软件仓库,便于各主机安装更新软件。

  • 软件仓库的文件存储放在一台IPSAN(192.168.0.46)上,其中包括一些Linux发行版的ISO镜像和YUM同步的源。
  • 软件仓库服务器(HTTP方式)运行在CentOS7的服务器上(192.168.0.41)。

这台IPSAN(RDX)上的分区比较特殊,是NTFS格式的,在windows 2008 server上挂载写入数据,然后挂载到CentOS7上。

1. 挂载IPSAN

参考《Linux挂载iscsi存储》、《Linux——iscsiadm基本用法》、《iscsi磁盘挂载并设置为开机自动挂载

(1)启动iscsi服务

  rpm -aq|grep iscsi
  systemctl start iscsi

(2)发现/查看IPSAN:192.168.0.46上的可用设备

iscsiadm -m discovery -t sendtargets -p 192.168.0.46:3260
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx8-8.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx7-7.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx6-6.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx5-5.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx4-4.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx3-3.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx2-2.989401959
192.168.0.46:3260,1 iqn.2010-01.com.tandbergdata:storage.rdx1-1.989401959

#查看iscsi信息
tree /var/lib/iscsi

(3)注册iscsi设备,上面有8个设备,只挂载其中的一个

$iscsiadm -m node -T iqn.2010-01.com.tandbergdata:storage.rdx1-1.989401959 -p 192.168.0.46:3260 -l

#查看就有哪些target记录在了Open-iSCSI数据库中
$iscsiadm -m node
$iscsiadm -m session -R

iSCSI设备设置为开机自动挂载

$iscsiadm -m node  -T iqn.2010-01.com.tandbergdata:storage.rdx1-1.989401959 -p 192.168.0.46:3260 --op update -n node.startup -v automatic

#这步执行成功后是没有返回值的,可以先看看scsi目录结构,然后查看详细的scsi信息,找node.startup
# tree /var/lib/iscsi 
# cat /var/lib/iscsi/nodes/...../default

(4)挂载ntfs分区(关于Linux支持ntfs格式分区详见下一节)

#安装Linux下ntfs支持软件包 ntfs-3g

rpm -ivh ntfs-3g-2017.3.23AR.5-1.el7.x86_64.rpm

 #挂载这个ipsan硬盘到 /mnt/rdx目录(需要提前建立此目录)

$mount -t ntfs /dev/sdb1 /mnt/rdx/

(5)挂载成功后,用df命令可以看到挂载的分区 /mnt/rdx

[root@backupDK yum.repos.d]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  9.8G   41G   20% /
devtmpfs                  16G     0   16G    0% /dev
tmpfs                     16G     0   16G    0% /dev/shm
tmpfs                     16G   11M   16G    1% /run
tmpfs                     16G     0   16G    0% /sys/fs/cgroup
/dev/sda1               1014M  170M  845M   17% /boot
/dev/mapper/centos-home  491G  8.2G  483G    2% /home
tmpfs                    3.2G   12K  3.2G    1% /run/user/42
tmpfs                    3.2G     0  3.2G    0% /run/user/0
/dev/sdb1                299G   78G  221G   27% /mnt/rdx

lsblk命令也可以查看到挂载硬盘情况

(6)将IPSAN上的CentOS-7-x86_64-Everything-1708.iso文件挂载到 /home/linuxrepo/centos1708,ISO文件都是只读挂载。

  mkdir /home/linuxrepo/centos1708
  mount -o loop /mnt/rdx/CentOS-7-x86_64-Everything-1708.iso  /home/linuxrepo/centos1708

用df命令可以看到多出来一个设备 /dev/loop0,挂载点是/home/linuxrepo/centos1708

[root@backupDK yum.repos.d]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  9.8G   41G   20% /
......
/dev/sdb1                299G   78G  221G   27% /mnt/rdx
/dev/loop0               8.1G  8.1G     0  100% /home/linuxrepo/centos1708

(7)进入到 /home/linuxrepo/目录下,启动caddy  fileserver browse,就建立了一个yum本地网络软件源。

(8)如果不需要使用IPSAN了,则反过来进行卸载。

$umount /mnt/rdx
$iscsiadm -m node -T iqn.2010-01.com.tandbergdata:storage.rdx1-1.989401959 -p 192.168.0.46:3260 -u

2. ntfs-3g:让Linux支持NTFS读写

Linux支持NTFS基本有两种模式:

1. NTFS内核支持,内核自带的NTFS模块只支持读操作。支持NTFS文件系统是Linux内核模块的特征,而不是Linux发行版的特征。ubuntu支持,centos/redhat默认不支持。可以通过bai命令查看,如 modinfo ntfs . 如果有输出就是支持;否则,不支持。

2. ntfs-3g软件包方式,支持读写NTFS分区。FUSE是一个用户空间的文件系统,NTFS-3G是基于FUSE开发的NTFS支持项目。本文主要介绍这种方式。

ntfs-3g最新的是3.23版本,下载地址是(下载想应的版本即可):Advanced NTFS-3G Features

龙芯也提供了MIPS版本:http://ftp.loongnix.org/os/loongnix/1.0/os/Packages/n/ntfs-3g-2014.2.15-4.fc21.loongson.mips64el.rpm

安装很简单:

rpm -ivh ntfs-3g-2017.3.23AR.5-1.el7.x86_64.rpm

然后就可以正常挂载ntfs分区,如:$mount -t ntfs /dev/sdb1 /mnt/rdx/

3. 挂载移动硬盘/U盘

Linux设备上插入优盘后,可以用lsusb查看设备,用fdisk查看设备号。

lsusb命令如下安装:yum -y install usbutils

[root@localhost opt]# fdisk -l^C
[root@localhost opt]# lsusb
Bus 002 Device 003: ID 0bc2:ab26 Seagate RSS LLC Backup Plus Slim Portable Drive 1 TB
Bus 002 Device 002: ID 8087:8002 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

[root@localhost opt]# fdisk -l
......
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048  3907029166  1953513559+   7  HPFS/NTFS/exFAT

如前步骤安装了ntfs-3g支持后,可以直接进行挂载,如下:

[root@localhost opt]#mkdir /mnt/usbhd
[root@localhost opt]#mount -t ntfs /dev/sdc1 /mnt/usbhd

#注:对ntfs格式的分区使用-t ntfs,对fat32格式的分区应使用-t vfat:mount -t vfat /dev/sdc5 /mnt/usbhd2


#若汉字文件名显示为乱码或不显示,如下:mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd

然后可以在/mnt/usbhd下对移动硬盘进行文件操作。

卸载设备,参考《Linux弹出U盘的正确姿势》。安全的做法是先卸载文件系统挂接:umount <挂载点>,然后关闭:udisksctl power-off -b <device>(或者使用eject命令,如eject /dev/sda1),如下(先用lsusb和lsblk分别查看USB存储设备及其挂接情况,这里有两个移动存储设备):

[root@localhost mirrors.aliyun.com]# lsusb
Bus 002 Device 004: ID 03f0:0825 HP, Inc
Bus 002 Device 003: ID 0bc2:ab26 Seagate RSS LLC Backup Plus Slim Portable Drive 1 TB
Bus 002 Device 002: ID 8087:8002 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

[root@localhost mirrors.aliyun.com]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 558.4G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0 557.4G  0 part
  ├─centos-root 253:0    0   126G  0 lvm  /
  ├─centos-swap 253:1    0  31.4G  0 lvm  [SWAP]
  └─centos-home 253:2    0   400G  0 lvm  /home
sdb               8:16   0   1.8T  0 disk
└─sdb1            8:17   0   1.8T  0 part
sdc               8:32   1   1.8T  0 disk
└─sdc1            8:33   1   1.8T  0 part /mnt/rdxhd

[root@localhost mirrors.aliyun.com]# udisksctl power-off -b /dev/sdb1

4. 挂载2TB以上的硬盘或者IPSAN

要是遇到分区大于2T的磁盘(比如:添加一个10TB的IPSAN存储),由于MBR分区表只支持2T磁盘,大于2T的磁盘必须使用GPT分区表(做raid时会划分多个VD)。GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT磁盘没有四个主分区的限制。

fdisk是不支持GPT分区的,使用parted来对GPT磁盘操作。parted功能很强大,既可用命令行也可以用于交互式,在提示符下输入parted就会进入交互式模式,如果有多个磁盘的话,需要运行select sdX(X为磁盘)来进行磁盘的选择,也可直接用parted /dev/sdX指定相应的硬盘。

首先,查看新增加的硬盘:

[root@server ~]# fdisk -l
Disk /dev/sdb: 2190.4 GB, 2190433320960 bytes
255 heads, 63 sectors/track, 266305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

用parted分区:

[root@server ~]# parted
GNU Parted 1.8.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb               //选择磁盘sdb 
Using /dev/sdb
(parted) mklabel gpt                   //将MBR磁盘格式化为GPT
(parted) mkpart primary 0 -1          //将整块磁盘分成一个分区
(parted) print                                                           
Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  2190GB  2190GB               primary      
(parted) quit                                                            
Information: Don't forget to update /etc/fstab, if necessary.

格式化为xfs分区(-f 表示强制格式化)

 mkfs.xfs -f /dev/sdb1

注:在Linux系统中挂载SCSI盘阵分区大小超过2TB时,使用mkfs.ext3命令格式化需要增加-T largefile参数,否则格式化过程将非常缓慢。
[root@server ~]# mkfs.ext3 -T largefile /dev/sdb1

最后,在fstab中添加一行完成分区的自动挂载

[root@server ~]# vi /etc/fstab
/dev/sdb1               /data    

也有资料说,挂载iscsi分区,如果有多路径,配置完多路径后写fstab加上_netdev参数(防止开机一直卡这里),在网络关闭前卸载卷,网络启动时加载卷!

/dev/sdb1       /data      default,_netdev  0   0

参考《CentOS7 xfs分区挂载新加硬盘(大于2TB)操作说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值