Iawen's Blog

我喜欢这样自由的随手涂鸦,因为我喜欢风......

一. U盘安装 CentOS

进入启动安装系统的界面,将光标移至Install CentOS 7 那行,然后按e键,看到如下行:

linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa quiet

# 将之更改为
linuxefi /images/pxeboot/vmlinuz linux dd quiet

Ctrl+x 启动后,查看系统U盘 重启后修改之前的行,如:

linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:/dev/sdc4 quiet

二. 分区方案描述

1. 必须的分区

A. boot分区

作用:引导分区,包含了系统启动的必要内核文件,即使根分区顺坏也能正常引导启动 一般这些文件所占空间在200M以下, 分区建议:分区的时候可选100M-500M之间,如果空间足够用,建议分300-500M。避免由于长期使用的冗余文件塞满这个分区。 分区格式:建议ext4,按需求更改

B. /分区(根分区)

作用:所有的文件都从这里开始,你可以比喻为Windows的C盘,但其实有区别。如果你有大量的数据在根目录下(比如FTP等)可以划分大一点的空间 分区建议:建议15G以上。看需求,根分区和home分区的大小就类似C盘和D盘的空间分布一样,主要占空间在哪儿就在那里分大容量 分区格式:建议ext4,按需求更改

C. swap分区(可以不要)

作用:类似于Windows的虚拟内存,在内存不够用时占用硬盘的虚拟内存来进行临时数据的存放,而对于linux就是swap分区 分区建议:建议是物理内存大小的2倍,比如你电脑是4G的物理内存,swap分区可以是8G 分区格式:swap格式

2. 可选的分区

A. home分区

作用:存放用户数据,HOME的结构一般是 HOME/userName/userFile,如果不分则默认在/目录下 分区建议:如果用户数据多可以将此分区适当增大,请参考“根分区”分区建议;一般硬盘的主要容量几乎都在Home分区和根分区下 分区格式:建议ext4,按需求更改

B. var分区

作用:用于log日志的文件的存放,如果不分则默认在/目录下 分区建议:如果你安装的linux是用于服务器或者经常做日志分析,请划分var分区,避免日志文件不断膨胀塞满导致根分区而引发问题。 分区格式:建议ext4,按需求更改

三. 磁盘划分

1. 逻辑卷管理LVM

逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。 LVM使用分层结构,如下图所示。 1

图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。

  • 1.查看磁盘文件可用空间df -h
  • 2.查看磁盘空间对的详细信息fdisk -l
  • 3.创建磁盘分区,使用‘8e’类型来使其可用于LVM fdisk /dev/sdb
  • 4.创建物理卷
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): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): t
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
  • 5.检查物理卷的创建情况 pvdisplay
  • 6.扩展卷组
vgextend centos /dev/sdb1
Volume group "centos" successfully extended
  • 7.查看卷组 vgdisplay
  • 8.扩展lvm卷
lvextend -l +100%FREE /dev/mapper/centos-root
Size of logical volume centos/root changed from 35.47 GiB (9080 extents) to 185.50 GiB (47489 extents).
Logical volume root successfully resized.
  • 9.扩展容量
xfs_growfs /dev/mapper/centos-root

# 如果提示:is not a mounted XFS filesystem
# 可以先查看格式: 
df -Th /dev/mapper/centos-root
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/centos-root ext4   14G   12G  1.2G  91% /

# 如果是 ext4,则:
resize2fs /dev/mapper/centos-root

  • 10.查看磁盘空间,可以看到扩容成功 df -h

2. 挂载大硬盘

# 用part命令对3T硬盘进行分区处理

parted /dev/sdb 
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt                                                      
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? yes                                                         
(parted) unit TB                                                          
(parted) mkpart
分区名称?  []? sdb01                                                     
文件系统类型?  [ext2]? ext4                                              
起始点? 0                                                                
结束点? 3                                                                
(parted) print                                                            
Model: ATA ST3000DM007-1WY1 (scsi)
Disk /dev/sdb: 3.00TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name   标志
 1      0.00TB  3.00TB  3.00TB               sdb01

(parted) quit                                                             
信息: You may need to update /etc/fstab.

# 进行格式化分区
mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
183148544 inodes, 732566272 blocks
36628313 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2881486848
22357 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, 214990848, 512000000, 550731776, 644972544

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

# 将硬盘挂载到文件夹下
mkdir /home/sdb1
mount /dev/sdb1 /home/sdb1

# 查看UUID
blkid  /dev/sdb1 

# # 开机自动挂载
/dev/sdb1: UUID="0ee05195-5896-426b-8b5a-36e8209dde4a" TYPE="ext4" PARTLABEL="sdb01" PARTUUID="bf347ed3-dc75-4de5-9608-df22d4ee3f2b"

# 编辑 /etc/fstab 文件,最后插入
UUID=0ee05195-5896-426b-8b5a-36e8209dde4a   /data   ext4    defaults        1 1

3. 交换分区

通过临时使用交换分区来解决内存不足问题:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
# count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB
 
sudo mkswap /swapfile
# 把刚才空间格式化成swap格式
 
sudo swapon /swapfile 
# 使用刚才创建的swap空间

# 在编译完成后,最好可以关闭(释放)交换空间
sudo swapoff /swapfile
sudo rm /swapfile

之后继续执行你的相关操作就可以了。。。

四. 升级内核

# 这步必须要执行的,要得到Key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# http://elrepo.reloumirrors.net/kernel/el7/x86_64/RPMS/    //官方源
yum install -y http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  //添加源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

# 下载对应内核文件并安装
yum --enablerepo=elrepo-kernel install kernel-ml
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

# vi /etc/default/grub
修改成 GRUB_DEFAULT=0

# grub2-mkconfig -o /boot/grub2/grub.cfg   //重新编译内核启动文件,以后升级完内核也要执行一次

删除旧内核
# rpm -qa | grep kernel
yum autoremove kernel-3.10.0-327.el7.x86_64

五. 修改当前的最大打开文件数

echo -e "ulimit -SHn 51200" >> /etc/rc.local
echo -e "ulimit -SHn 51200" >> /etc/profile
echo -e "* soft nofile  51200" >> /etc/security/limits.conf
echo -e "* hard nofile  51200" >> /etc/security/limits.conf
source /etc/profile

六. 文件夹权限的设置和修改

1、如果是对文件和文件夹权限的修改是一样的,那么可以加-R

chmod -R xxx * 或 chmod -R u+x *(这里的u代表当前用户权限,还有组和其他分别为g,o)

2、如果是要对文件和文件夹分别对待,那么可以用find命令查找

文件:find . -type f | xargs -i chmod 644 {} 目录:find . -type d | xargs -i chmod 777 {}

七. 系统时间不正确时的设置

设置硬件时间要依赖与操作系统时间!

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate cn.pool.ntp.org
clock -w
hwclock --show
hwclock --hctosys

时间相关:timedatectl

八. selinux相关

1、关闭

A、永久方法 – 需要重启服务器 修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。 B、临时方法 – 设置系统参数 使用命令setenforce 0

setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式

九. 系统更新

1. CentOS

1). 下载repo文件

wget http://mirrors.aliyun.com/repo/Centos-7.repo

2). 备份并替换系统的repo文件

cp Centos-7.repo /etc/yum.repos.d/ 
cd /etc/yum.repos.d/ 
mv CentOS-Base.repo CentOS-Base.repo.bak 
mv Centos-7.repo CentOS-Base.repo

3). 执行yum源更新命令

yum clean all 
yum makecache 
yum update

4). 补丁查看

# 全部可用的补丁
yum updateinfo list available
 
# 列出全部可用的安全补丁但不安装
yum updateinfo list security all

# 要显示所有待安装的安全补丁:
yum updateinfo list security all | grep -v "i"
 
# 可以安全补丁
yum --security check-update
 
# 你想检查一下系统已安装的软件有没有bugs及相应补丁包的话,可以用下面的命令,
yum list-security bugzillas

# 使用infor-security能了解更详细的补丁信息,如:
yum info-security RHSA-2009:1148-1

# 如果我们想列出关于Bugzilla 3595、CVE CVE-2009-1890和建议RHSA-2009:1148-1的清单,可以使用下面的命令:
yum --bz 3595 --cve CVE-2009-1890 --advisory RHSA-2009:1148-1 info updates

# 如何一次性安装系统安全更新呢?呵呵,也是一个命令:
yum update --security

2. Ubuntu

# 升级安装包相关的命令,刷新可安装的软件列表(但是不做任何实际的安装动作)
sudo apt-get update

# 进行安装包的更新(软件版本的升级)
sudo apt-get upgrade

# 进行系统版本的升级(Ubuntu版本的升级)
sudo apt-get dist-upgrade

# Ubuntu官方推荐的系统升级方式,若加参数-d还可以升级到开发版本,但会不稳定
sudo do-release-upgrade

# 清理旧版本的软件缓存
sudo apt-get autoclean

# 清理所有软件缓存
sudo apt-get clean

# 删除系统不再使用的孤立软件
sudo apt-get autoremove

十. 系统用户及组、服务

  • 可删除的用户,如 adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher 等。
  • 可删除的组,如 adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers 等。
  • 下面这些服务一般情况下是不需要的,可以选择关闭:
anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、
messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd 
ypserv