标签归档:CentOS

CentOS 7.X 装机参考

#查看文件描述符限制
ulimit -n

#调整文件描述符(文件最后添加内容)
vi /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

#RAID卡查看
dmesg | grep -i raid
[    1.521079] Areca RAID Controller0: Model ARC-1200, F/W V1.49 2010-12-02
[    1.521203] scsi host0: Areca SATA RAID Controller (RAID6 capable)
[    1.648025] scsi 0:0:16:0: Processor         Areca    RAID controller  R001 PQ: 0 ANSI: 0

cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: Areca    Model: ARC-1200-VOL#00  Rev: R001
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi0 Channel: 00 Id: 16 Lun: 00
  Vendor: Areca    Model: RAID controller  Rev: R001
  Type:   Processor                        ANSI  SCSI revision: 00
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST1000NM0033-9ZM Rev: SN04
  Type:   Direct-Access                    ANSI  SCSI revision: 05

lspci | grep -i raid
03:00.0 RAID bus controller: Areca Technology Corp. ARC-1200 2-Port PCI-Express to SATA II RAID Controller


#查看版本
cat /etc/system-release
cat /etc/issue 	#CentOS 7下不会再输出版本

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

#查看网卡
ip addr
ip link
ip -s link
ifconfig 	#CentOS 7下,默认不再安装此工具

#本机DNS配置,配置文件/etc/resolv.conf
options timeout:1 attempts:1 rotate
nameserver 192.168.1.1
nameserver 8.8.8.8

#CentOS 7下网卡命名发生了变化,以前的ethX这种命名不见
#如果要改回来,需要修改/etc/default/grub文件
#添加net.ifnames=0 biosdevname=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=us net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

#修改网卡配置信息(注意网卡名称)
#CentOS 7中除了名称改变,其它几乎是一致的
vi vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.168
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eno16777736
UUID=7f9bd132-fb60-4ec8-8021-734f15dc0ff2
DEVICE=eno16777736
ONBOOT=yes

#CentOS 7 主机名相关状态(相关信息可以通过hostnamectl完成)
[root@localhost ~]# hostnamectl status
   Static hostname: localhost.localdomain
         Icon name: computer
           Chassis: n/a
        Machine ID: 2c3cda62de28434a894128e7ade1627b
           Boot ID: bd5d076f8a8c42358fe8ef4dbc6f0929
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.el7.x86_64
      Architecture: x86_64

#查看主机名
hostname

#CentOS 7中修改主机名
vi /etc/hostname
localhost.localdomain

#CentOS 6.x中(CentOS中不存在/etc/sysconfig/network)
vi /etc/sysconfig/network
NETWORKING=yes		#ipv4网络
NETWORKING_IPV6=no	#ipv6网络
HOSTNAME=vfeelit	#主机名称

#CentOS 7时间相关
[root@localhost ~]# timedatectl
      Local time: Sat 2015-11-07 22:38:42 PST
  Universal time: Sun 2015-11-08 06:38:42 UTC
        RTC time: Sun 2015-11-08 06:38:42
        Timezone: America/Los_Angeles (PST, -0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: no
 Last DST change: DST ended at
                  Sun 2015-11-01 01:59:59 PDT
                  Sun 2015-11-01 01:00:00 PST
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2016-03-13 01:59:59 PST
                  Sun 2016-03-13 03:00:00 PDT
# 列出所有时区
timedatectl list-timezones 

# 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间
timedatectl set-local-rtc 1 

# 设置系统时区为上海
timedatectl set-timezone Asia/Shanghai 

# 也可以使用如下方法(CentOS 6.x中使用的方法)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

##同步时间(yum install ntp)
ntpdate asia.pool.ntp.org

##查看当前时区的时间
date -R
Sun, 08 Nov 2015 14:45:07 +0800

#本地设置(修改为中文)
vi /etc/locale.conf
ANG="zh_CN.UTF-8"

#关闭Selinux
vi /etc/selinux/config
#关闭Selinux后可能无法开机,Ctrl+F1切换终端可以查看,编辑/etc/grub2.conf
#在语言设置之后添加selinux=0

#赋予rc.loal执行权限(CentOS 6.x中不需要)
ls -lha /etc/rc.d/rc.local 
-rw-r--r--. 1 root root 473 3月   6 2015 /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

#查看当前运行级别(runlevel)
cat /etc/systemd/system/default.target
#修改运行级别(先删除/etc/systemd/system/default.target符合链接)
rm -f /etc/systemd/system/default.target
#运行级别3
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
#运行级别5
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

#去掉一批自启动服务(systemctl list-unit-files|grep enabled)
#如果要停止当期服务,使用systemctl stop xxx 
systemctl disable auditd.service
systemctl disable avahi-daemon.service
systemctl disable firewalld.service
systemctl disable cups.service
systemctl disable irqbalance.service
systemctl disable iscsi.service
systemctl disable kdump.service
systemctl disable lvm2-monitor.service
systemctl disable mdmonitor.service
systemctl disable microcode.service
systemctl disable multipathd.service
systemctl disable NetworkManager.service
systemctl disable postfix.service
systemctl disable tuned.service
systemctl disable remote-fs.target
systemctl disable dm-event.socket
systemctl disable iscsid.socket
systemctl disable iscsiuio.socket
systemctl disable lvm2-lvmetad.socket

#安装
#使用系统默认安装的Chrony服务即可(http://blog.ifeeline.com/2554.html)
#1、ntpd.service #时间同步,不需要开机启动

2、nscd.service #缓存(默认没有DNS缓存)
有提供passwd, group, hosts, services,这里主要使用hosts
vi /etc/nscd.conf

#       logfile                 /var/log/nscd.log
        threads                 8
        max-threads             128
        server-user             nscd
#       stat-user               somebody
        debug-level             5
#       reload-count            5
        paranoia                no
#       restart-interval        3600


        enable-cache            hosts           yes
        positive-time-to-live   hosts           5
        negative-time-to-live   hosts           10
        suggested-size          hosts           211
        check-files             hosts           yes
        persistent              hosts           yes
        shared                  hosts           yes
        max-db-size             hosts           33554432
3、sysstat.service #系统性能
4、supervisord.service #进程监控

配置第三方YUM源:

#默认
yum repolist
base/7/x86_64        CentOS-7 - Base
extras/7/x86_64      CentOS-7 - Extras
updates/7/x86_64     CentOS-7 - Updates 

######
#安装epel,这个软件包,默认被extras收录,可以直接yum安装
yum install 
#也可以手动安装
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -ivh epel-release-7-5.noarch.rpm
#确认
yum repolist
base/7/x86_64        CentOS-7 - Base
epel/x86_64          Extra Packages for Enterprise Linux 7 - x86_64
extras/7/x86_64      CentOS-7 - Extras 
updates/7/x86_64     CentOS-7 - Updates 

######
##-------ius源,它依赖epel(yum install epel-release)
#https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/repoview/
#来自这个源的软件包,习惯加一个u
wget https://rhel7.iuscommunity.org/ius-release.rpm
rpm -ivh ius-release.rpm

##--------Webtatic源,也依赖epel(yum install epel-release),这是一个理想的php(5.4-5.6,7),nginx的RPM源
#http://repo.webtatic.com/yum/el7/x86_64/RPMS/
#来自这个源的软件包,习惯加一个w
wget https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
rpm -ivh webtatic-release.rpm

#安装PHP
yum install php71w-bcmath.x86_64 php71w-cli.x86_64 php71w-common.x86_64 php71w-fpm.x86_64 php71w-gd.x86_64 php71w-mbstring.x86_64 php71w-mcrypt.x86_64 php71w-mysqlnd.x86_64 php71w-opcache.x86_64 php71w-pdo.x86_64 php71w-pecl-apcu.x86_64 php71w-pecl-mongodb.x86_64 php71w-pecl-redis.x86_64 php71w-pgsql.x86_64 php71w-process.x86_64 php71w-recode.x86_64 php71w-soap.x86_64 php71w-tidy.x86_64 php71w-xml.x86_64 php71w-intl.x86_64 php71w-devel.x86_64

#安装PHP后修改对应文件权限
find . -user apache
/var/log/php-fpm		#要改
/var/cache/httpd
/var/cache/httpd/proxy
/var/lib/dav
/run/httpd/htcacheclean

find . -group apache
/usr/sbin/suexec
/var/cache/httpd
/var/cache/httpd/proxy
/var/lib/dav
/var/lib/php/wsdlcache		#要改	
/var/lib/php/session		#要改
/run/httpd
/run/httpd/htcacheclean


##--------remi源,也依赖epel(yum install epel-release)
##Remi源可以安装多个不同版本的PHP,而且扩展比较齐全,对于单一的服务部署,推荐使用Webtatic源
##否则可以用Remi源,安装完成后会自动添加服务管理脚本 /lib/systemd/system/php**-php-fpm.service
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
## 安装完成后,会对应多个仓库
-rw-r--r-- 1 root root  456 3月  21 06:28 remi-php54.repo
-rw-r--r-- 1 root root 1.3K 3月  21 06:28 remi-php70.repo
-rw-r--r-- 1 root root 1.3K 3月  21 06:28 remi-php71.repo
-rw-r--r-- 1 root root 1.3K 3月  21 06:28 remi-php72.repo
-rw-r--r-- 1 root root 2.6K 3月  21 06:28 remi.repo
-rw-r--r-- 1 root root  750 3月  21 06:28 remi-safe.repo
如果希望把某个版本作为主版本(就是安装到/usr/bin等目录),可以使用yum --enablerepo=remi-php71 install ****, 否则将独立安装。

// PHP 7.1
yum --enablerepo=remi install php71-php php71-php-bcmath php71-php-cli php71-php-common php71-php-devel php71-php-fpm php71-php-gd php71-php-intl php71-php-json php71-php-mbstring php71-php-mcrypt php71-php-mysqlnd php71-php-opcache php71-php-pdo php71-php-pecl-apcu php71-php-pecl-apcu-devel php71-php-pecl-crypto php71-php-pecl-igbinary php71-php-pecl-igbinary-devel php71-php-pecl-imagick php71-php-pecl-imagick-devel php71-php-pecl-mongodb php71-php-pecl-uuid php71-php-pecl-zip php71-php-pgsql php71-php-process php71-php-recode php71-php-soap php71-php-tidy php71-php-xml php71-php-xmlrpc php71-php-pecl-amqp php71-php-pecl-redis4 php71-php-pecl-swoole2 php71-php-pecl-uploadprogress php71-php-phalcon3

// PHP 5.4
// php54-php-pecl-swoole2 php54-php-phalcon3无对应
yum --enablerepo=remi install php54-php php54-php-bcmath php54-php-cli php54-php-common php54-php-devel php54-php-fpm php54-php-gd php54-php-intl php54-php-json php54-php-mbstring php54-php-mcrypt php54-php-mysqlnd php54-php-opcache php54-php-pdo php54-php-pecl-apcu php54-php-pecl-apcu-devel php54-php-pecl-crypto php54-php-pecl-igbinary php54-php-pecl-igbinary-devel php54-php-pecl-imagick php54-php-pecl-imagick-devel php54-php-pecl-mongodb php54-php-pecl-uuid php54-php-pecl-zip php54-php-pgsql php54-php-process php54-php-recode php54-php-soap php54-php-tidy php54-php-xml php54-php-xmlrpc php54-php-pecl-amqp php54-php-pecl-redis4 php54-php-pecl-uploadprogress 

// Remi源安装的配置放入到/opt/remi/php**/root/, 配置安装到了/etc/opt/remi/php**/(注:PHP5.5以下版本,配置在安装目录)

// 添加服务启动脚本(一般已经存在)
vi /usr/lib/systemd/system/php71-php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=notify
EnvironmentFile=/etc/opt/remi/php71/sysconfig/php-fpm
ExecStart=/opt/remi/php71/root/usr/sbin/php-fpm --nodaemonize
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

######
PHP-FPM以SOCK方式运行时,务必对SOCK文件用户和组权限做正确设置,比如:
listen.owner = www
listen.group = www
listen.mode = 0660

###### 
##为了避免意外更新,改为默认不启用
vi /etc/yum.repos.d/ius.repo	  #把ius的enable改为0
vi /etc/yum.repos.d/webtatic.repo #把webtatic的enable改为0
vi /etc/yum.repos.d/remi.repo	  #remi容器默认enable改为0

#######
##查看软件包的通用方法(先搜索,后安装)
yum repolist #查看启用仓库
yum --enablerepo=ius info php56u.x86_64 #查看某个源中的具体软件包信息
yum --disablerepo="*" --enablerepo="epel" list available | less #列出所有
yum --disablerepo="*" --enablerepo="ius" search php #源中搜索
yum install --enablerepo="ius" php56u.x86_64 #安装具体软件包

安装MySQL:(http://devdocs.magento.com/guides/v2.0/install-gde/prereq/mysql.html#instgde-prereq-mysql-centos)

#安装源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 
rpm -ivh mysql-community-release-el7-5.noarch.rpm
#从源安装MySQL
yum -y install mysql-server
#MySQL初始化
mysql_secure_installation
#开启服务
systemctl start mysqld.service

————————————————————–
CentOS 7.X的如下变化最让人不习惯:
一、CentOS的Services使用了systemd来代替sysvinit管理

systemd的服务管理程序:
systemctl是主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。

直接运行systemctl可以列出正在运行的服务状态:

[root@vfeelit ~]# systemctl
UNIT                                         LOAD   ACTIVE SUB       DESCRIPTION
proc-sys-fs-binfmt_misc.automount            loaded active waiting   Arbitrary Executable File Formats File System
sys-devices-pl...serial8250-tty-ttyS0.device loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS0
sys-devices-pl...serial8250-tty-ttyS1.device loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS1
sys-devices-pl...serial8250-tty-ttyS2.device loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS2
sys-devices-pl...serial8250-tty-ttyS3.device loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS3
sys-devices-vb...728-block-xvdb-xvdb1.device loaded active plugged   /sys/devices/vbd-51728/block/xvdb/xvdb1
sys-devices-vbd\x2d51728-block-xvdb.device   loaded active plugged   /sys/devices/vbd-51728/block/xvdb
sys-devices-vb...768-block-xvda-xvda1.device loaded active plugged   /sys/devices/vbd-768/block/xvda/xvda1
sys-devices-vbd\x2d768-block-xvda.device     loaded active plugged   /sys/devices/vbd-768/block/xvda
sys-devices-vif\x2d0-net-eth0.device         loaded active plugged   /sys/devices/vif-0/net/eth0
sys-devices-vif\x2d1-net-eth1.device         loaded active plugged   /sys/devices/vif-1/net/eth1
sys-module-configfs.device                   loaded active plugged   /sys/module/configfs
sys-subsystem-net-devices-eth0.device        loaded active plugged   /sys/subsystem/net/devices/eth0
sys-subsystem-net-devices-eth1.device        loaded active plugged   /sys/subsystem/net/devices/eth1
-.mount                                      loaded active mounted   /

## systemd-cgls树形方式展示
[root@vfeelit ~]# systemd-cgls
├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
├─user.slice
│ └─user-0.slice
│   └─session-5468.scope
│     ├─2837 sshd: root@pts/0    
│     ├─2845 -bash
│     ├─3003 systemd-cgls
│     └─3004 systemd-cgls
└─system.slice
  ├─php-fpm.service
  │ ├─ 2821 php-fpm: pool www              
  │ ├─ 2916 php-fpm: pool www              
  │ ├─ 2972 php-fpm: pool www              
  │ ├─32313 php-fpm: master process (/etc/php-fpm.conf
  │ ├─32316 php-fpm: pool www              
  │ ├─32317 php-fpm: pool www              
  │ ├─32318 php-fpm: pool www              
  │ ├─32319 php-fpm: pool www             
  │ ├─32320 php-fpm: pool www 

如何启动/关闭、启用/禁用服务
启动一个服务:systemctl start postfix.service
关闭一个服务:systemctl stop postfix.service
重启一个服务:systemctl restart postfix.service
显示一个服务的状态:systemctl status postfix.service
在开机时启用一个服务:systemctl enable postfix.service
在开机时禁用一个服务:systemctl disable postfix.service
查看服务是否开机启动:systemctl is-enabled postfix.service; echo $?
查看已启动的服务列表:systemctl list-unit-files | grep enabled

启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接。(这种搞法非常常见)

[root@vfeelit multi-user.target.wants]# pwd
/etc/systemd/system/multi-user.target.wants
[root@vfeelit multi-user.target.wants]# ls -lah
crond.service -> /usr/lib/systemd/system/crond.service
nginx.service -> /usr/lib/systemd/system/nginx.service
nscd.service -> /usr/lib/systemd/system/nscd.service
ntpd.service -> /usr/lib/systemd/system/ntpd.service
php-fpm.service -> /usr/lib/systemd/system/php-fpm.service
rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
sshd.service -> /usr/lib/systemd/system/sshd.service
supervisord.service -> /usr/lib/systemd/system/supervisord.service
sysstat.service -> /usr/lib/systemd/system/sysstat.service

CentOS 6.x中也是如此,但是语法已经不一样了。

二、修改系统运行级别

切换到运行级别
systemd使用比sysvinit的运行级更为自由的target替代。第3运行级用multi-user.target替代。第5运行级用graphical.target替代。runlevel3.target和runlevel5.target分别是指向 multi-user.target和graphical.target的符号链接。

可以使用下面的命令切换到“运行级别3 ”:
systemctl isolate multi-user.target或systemctl isolate runlevel3.target
可以使用下面的命令切换到“运行级别5 ”:
systemctl isolate graphical.target或systemctl isolate runlevel5.target

改变默认运行级别
systemd使用链接来指向默认的运行级别。在创建新的链接前,可以通过下面命令删除存在的链接: rm /etc/systemd/system/default.target

默认启动运行级别3 :
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

默认启动运行级别5 :
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

systemd不使用/etc/inittab文件。

查看当前运行级别
旧的runlevel命令在systemd下仍然可以使用。可以继续使用它,尽管systemd使用 ‘target’ 概念(多个的 ‘target’ 可以同时激活)替换了之前系统的runlevel。等价的systemd命令是systemctl list-units –type=target

其他配置工具:
1、setup和ntsysv工具还是保留了,但是功能已大大减弱,以前ntsysv工具可以控制所有系统服务的自启动,现在只能控制少部分服务。
2、/etc/resolv.conf这个DNS配置文件没变。
3、/etc/sysconfig/network-scripts/ifcfg-ens192网卡配置文件名字和一些选项有所变化。
4、引导方式改用grub2引导,grub2有如下特点:1、模块化设计;2、支持多体系硬件架构;3、支持国际化多语言;4、独立内存管理;5、支持脚本语言。

最后再稍作对比总结,三个基本任务,查看启动的服务,设置服务是否开机启动,当期关闭和启动服务

查看启动的服务
chkconfig –list -> systemctl list-unit-files|grep enabled(/etc/systemd/system/multi-user.target.wants)
设置服务是否开机启动
chkconfig –levels 35 xxxx off -> systemctl enable postfix.service
当期关闭和启动服务
service xxx stop -> systemctl start postfix.service

在Windows7下安装Linux(CentOS 6.x)

在Linux下,貌似无法识别NTFS,但可以识别FAT32,但是FAT32有个致命问题,就是单个文件无法大于4G,然而下载的CentOS 6.5 DVD1大于4G,所以这个方法不做考虑。

反过来思考,可以分一个EXT3分区,然后把其挂在Windows7下,这个是可行的,所以本文使用这个方法。

我的电脑C盘是一个SSD硬盘,只分一个区,这里把C盘压榨6G出来,用来安装CentOS到机械硬盘的空闲地方。这里使用一个叫分区助手的工具完成这个操作(直接360安装卫士的软件中搜索可下载):

先拆分分区,然后接着格式化(具体过程略)。
格式化分区

然后寻找一个叫ext2fsd的软件,用它可以把Ext3挂在到Windows里(http://www.ext2fsd.com)
EXT分区挂载到Windows

这里把这个EXT3分区映射为Windows下的X盘,接下就是拷贝文件进去:

CentOS-6.5-x86_64-bin-DVD1.iso
CentOS-6.5-x86_64-bin-DVD2.iso
images
isolinux

isolinux 和 images是从CentOS-6.5-x86_64-bin-DVD1.iso文件中提取出来的。

接下来就是要从这个EXT3分区引导安装,这个时候还需要一个叫EasyBCD的工具:
Windows下添加引导
这里配置一个启动项,这个配置项是需要正确指定刚刚配置的EXT3的对应编号,比如hd0表示第一个硬盘,后面的1表示这个硬盘的第二分区。
引导Linux分区启动
重新启动后就可以看到这个启动项,选择进入开始引导,选择镜像位置后就和用光盘安装没有什么区别了,所以后面的过程就省略了。安装完成后这个EXT3分区可以删掉,也可以挂到Linux中,使用它在Linux和Windows中共享文件。

原创文章,装载务必保留出处。
永久链接: http://blog.ifeeline.com/1090.html

CentOS 6.X下添加新硬盘

在虚拟机下操作练习。添加一张新硬盘,然后启动系统。

#fdisk命令参数介绍
#     p、打印分区表。
#     n、新建一个新分区。
#     d、删除一个分区。
#     m、输出菜单
#     q、退出不保存。
#     w、把分区写进分区表,保存并退出。

#查看分区情况,应看到新添加的磁盘为sdb,未分区
fdisk -l 	
#然后开始分区,这里就分一个区
fdisk /dev/sdb
#建立分区,用p表示建立主分区,然后用n建立分区(指定开始与结束柱面)
fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):
#最后用w保存分区表信息

#再次查看分区信息
fdisk –l
.....
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x64627767

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   83  Linux

#接下来需要格式化
mkfs –t ext4 –c /dev/sdb1

#然后把其进行挂载
mount –t ext4 –o rw /www

这样就完成了新硬盘添加和分区格式化。

为了让其能开机自动加载,还需要编辑/etc/fstab实现自动挂载

UUID=144e7ab9-0a81-4139-9ca7-9e69435d6ec9	/	ext4 	noatime,nodiratime 	1 1
UUID=817c334e-721c-4296-9e8b-e588bac87d87	/boot	ext4    	defaults        		1 2
UUID=d77cd91c-8ec8-44af-a5c7-e9052371b46e 	swap	swap    defaults        		0 0

第一列是设备名称,第二列是挂载点,第三列是挂载的文件系统,第四轮是挂载选项(比如可以是rw),第五列表示分区是否备份(像swap分区是不需要备份的),第六列表示分区是否校验(根分区一般是1,其它一般是2)。这里显示的分区是使用UUID来指定的,实际也可以直接指定分区名称,比如/dev/sab1等。不过,如果知道分区对应的UUID呢?

#列出当前系统中所有已挂载文件系统的UUID
blkid -s UUID              #build id->blkid
#查看UUID
ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 Jun 19 23:31 144e7ab9-0a81-4139-9ca7-9e69435d6ec9 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 19 23:31 817c334e-721c-4296-9e8b-e588bac87d87 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 19 23:31 e70fa1c3-2542-49cd-adaf-7364fb263218 -> ../../sdb1

从这个结果可以看到,实际UUID就是一个实际分区的链接文件。

总结一下操作硬盘:

fdisk -l		显示硬盘和分区信息
fdisk /dev/sd*		管理硬盘,比如添加删除分区等
mkfs –t 类型 分区	格式化分区
df –h			查看已经挂载的文件系统
/etc/fstab		自动挂载设置文件

原创文章,转载务必保留出处。
永久链接: http://blog.ifeeline.com/1088.html