下载准备
UltraISO下载,Ubuntu Server iso下载
启动盘制作
启动UltraISO,打开Ubuntu iso文件,写入硬盘映像
1521386735589.png其他选项默认,便捷启动里选择Syslinux引导,点击写入,等待完成后再把Ubuntu iso原文件复制到U盘根目录下,后面会用到。
1521387074608.png系统安装
插入U盘,设置BIOS从U盘启动,按提示一步步进行,不需要检测键盘和布局。
到Load Installer Components From CD这一步可能会失败,解决方法如下:
- 按Alt+F2进入命令行
- 通过
df -h
,辨认U盘识别符,如下假设为 /dev/sdd4
1521387956555.png
-
重新挂载U盘
umount /dev/sdd4 mount /dev/sdd4 /mnt
-
挂载Ubuntu iso原文件到 /cdrom
mount -o loop /mnt/ubuntu-16.04.4-server-amd64.iso /cdrom
-
查看 /cdrom下是否有iso文件,确认挂载成功。
-
按Alt+F1返回安装界面,继续安装
分区建议单独把/home放一个分区
手动分区使用整块系统盘
选择系统盘,删除分区
1524448764630.png选择磁盘空闲空间, Enter创建新分区
1524448843762.png输入分区大小,单位是MB、GB等,按/boot、/swap、/、/home,前三个都是主分区,/home是逻辑分区,大小依次为200MB、1-4G、10-20G、剩下的都给/home,默认都是ext4文件系统,除了swap要指定用于swap空间。
1524449662333.png
若没有如上分区,补救措施,/home迁移到新分区
sudo rsync -aXS --exclude='/*/.gvfs' /home/. /nhome/.
之后在主机上登录root删除/home下的东西,修改/etc/fstab挂载新分区到/home。用blkid查看UUID号,用UUID号进行挂载。
最后一步选择开启的服务,选中openssh server,再按空格确认,下一步安装完成,否则要再手动安装ssh服务。
本地iso源制作
复制原始iso文件到 /opt下,再挂载到/media/cdrom, apt-cdrom添加源
sudo mount /opt/ubuntu-16.04.4-server-amd64.iso /media/cdrom
sudo apt-cdrom -m -d=/media/cdrom add
sudo aptupdate
更新源
sudo apt install openssh-server
安装ssh服务,便于远程控制。
source.list换源
# deb cdrom:[Ubuntu-Server 16.04.4 LTS _Xenial Xerus_ - Release amd64 (20180228)]/ xenial main restricted
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb https://mirrors.tuna.tsinghua.edu.cn/CRAN//bin/linux/ubuntu/ xenial/
apt设置配置文件/etc/apt/apt.conf
# 不安装自动推荐和建议的软件包
APT::Install-Recommends "false";
APT::Install-Suggests "false";
创建/etc/apt/apt.conf.d/01lean配置文件,执行sudo apt autoremove --purge
清除这些多余的包。
# 自动删除重要推荐
APT::AutoRemove::RecommendsImportant "false";
# 自动删除重要建议
APT::AutoRemove::SuggestsImportant "false";
# 取消安装推荐
APT::Install-Recommends "false";
apt软件下载
sudo apt install -d --reinstall xxx # 只下载某软件
sudo mv xxx /var/cache/apt/archives/ # 将软件移到apt的下载缓冲区
sudo apt install xxx # 在通过apt安装该软件
# 只下载依赖的包,而不下载该包
sudo apt-get install --reinstall -d `apt-cache depends python-numpy | grep Depends | grep -v "<.*>" | cut -d: -f2` # 下载python-numpy依赖的所有包,但不下载python-numpy
note: 选择镜像源对应的软件版本下载
另外有些时候下载下来的文件名会有点出入:
1521466375499.png下载后文件名变成了python-dev_2.7.12-1_16.04_amd64.deb,波浪号变成了下划线,需要手动更正。
mv python-dev_2.7.12-1_16.04_amd64.deb python-dev_2.7.12-1~16.04_amd64.deb
有时需要批量改名
sudo rename 's/\d\://' *.deb # 删除文件名中多余的数字和冒号,比如 1: ,2:等
安装python软件会提示文件夹读写权限不够,要手动创建好文件夹。
apt添加第三方源比如:R,时要验证公钥。
# 51716619E084DAB9替换为提示的公钥,端口还是改为80,不通过代理的话 --keyserver-option不需要(代理配置见下面介绍)。
sudo apt-key adv --keyserver-option http-proxy=http://134.156.1.1:80 --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
局域网配置
windows主机一块网卡设置内网IP和掩码,其他不需要设置。
1521389688776.png
Ubuntu主机修改/etc/network/interfaces,添加IP和网关即可。网卡未启动的话,用ifconfig -a
显示完整的网卡信息,在如下设置网卡。
首次添加网卡静态ip后要resolvconf -u
;
修改/etc/network/interfaces更改IP,通过/etc/init.d/networking restart重启网络可能无效,就按如下操作进行:
ip addr flush dev SSXX # SSXX换成ifconfig识别的网卡标识,删除IP
ifdown SSXX # 禁用网卡
ifup SSXX # 启用网卡
Note 配置完成后,在windows防火墙全开的情况下,windows主机能ping通Ubuntu主机和ssh登录操作,反过来不行;需要关闭windows的公用网络防火墙,才能让Ubuntu主机ping通windows主机。
局域网代理配置
windows下载安装CCProxy,配置需要的网络协议,输入windows本地主机局域网端口IP;端口808可调整为80。
关闭windows的公用网络防火墙才能联网!!!
非必须联网,不要联网
到局域网Ubuntu服务器端,配置个人.bashrc文件,添加以下内容(按需):
# 分别添加http和https的代理, 端口改为80
export http_proxy=http://134.156.1.1:80 # 假设windows端IP为: 134.156.1.1
export https_proxy=https://134.156.1.1:80
# 联网测试,会下载index.html文件
wget www.baidu.com
Ubuntu自带的apt联网还需单独设置,在/etc/apt/下创建apt.conf文件并输入如下内容:
Acquire::http::Proxy "http://134.156.1.1:80"; # 双引号、分号都不能少
Acquire::https::Proxy "https://134.156.1.1:80";
性能优化
- 设置缓存和共享内存,可以在/etc/sysctl.conf中加上两行:
vm.swappiness=5 # 内存使用比达到95%,才启用swap
vm.min_free_kbytes=10485760 # 10G
kernel.shmmax = 33721946112
kernel.shmall = 8232897
新建shmsetup的脚本:
#!/bin/bash
page_size=`getconf PAGE_SIZE`
phys_pages=`getconf _PHYS_PAGES`
shmall=`expr $phys_pages / 2`
shmmax=`expr $shmall \* $page_size`
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall
运行
./shmsetup >> /etc/sysctl.conf # 追加kernel.shmmax, kernel.shmall到/etc/sysctl.conf
sudo sysctl -p # 生效
- 在linux文件系统有一个预读的参数,可以通过如下命令查看:
blockdev --getra /dev/sdb # 一般默认值为256
可以将此数据改大一点,建议的范围是在4096-16384之间,预读不足的常见问题是写磁盘的速度要比读取的速度要高。
在/etc/rc.local 中exit 0之前添加 blockdev --setra 4096 /dev/sdb
。
-
在linux中,用户每访问一个文件,系统都会更新文件的其中一个属性(上次访问时间),当用户在访问数据时,系统会需要不断的进行写操作,这个在系统中也是一笔不小的开销,可以在/etc/fstab文件中,对挂载的卷加上noatime选项来禁用此行为:
/dev/sda1 / ext3 noatime,errors=remount-ro 0 1
修改完以后,执行sudo mount -a 命令生效即可。
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda5 during installation
UUID=89b5-7a-448-833-67a0507 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
#UUID=fafd-06-4c0-bd0-ff29677 none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
UUID=8874-af-47b-bb0-df97b32 /home ext4 errors=remount-ro 0 1
/dev/sdb5 /mnt/D5 ext4 defaults,noatime,errors=remount-ro 0 2
/dev/sdb6 /mnt/D6 ext4 defaults,noatime,errors=remount-ro 0 2
/dev/sdb7 /mnt/D7 ext4 defaults,noatime,errors=remount-ro 0 2
/dev/sdb8 /mnt/D8 ext4 defaults,noatime,errors=remount-ro 0 2
- ssh过段时间掉线的问题,解决方法:编辑/etc/ssh/sshd_config,添加如下内容:
ClientAliveInterval 60
ClientAliveCountMax 3
xshell保持活动状态(keepalive)设置如下:putty类似
1522920312938.png
- 通过sysv-rc-conf关闭一些不必要的启动项。
网友评论