OS安装与基本配置

目录

1 Windows

1.1 安装

新的设备一般不再提供CD/DVD驱动器,而只有USB接口。Windows USB DVD Download Tool是 微软提供的USB安装盘制作工具。USB盘分区复杂或异常可能导致引导失败。最简单可靠的 分区是只保留一个分区,格式化为NTFS。如果想用一个大容量USB制作随身USB盘,请参考 随身USB盘

Win7/Win10在安装时会自动生成一个小的隐藏分区,存放引导文件。对分区无特殊规划的 用户,这不会有问题。如果要控制分区方式,需安装前完成分区,此时Win7/Win10把引导 分区内容放置到系统分区内(C盘)。定制分区参见Partition

Win单系统安装十分简单。制作USB安装盘,(可选的)准备分区,接入USB盘开机,配置BIOS 或使用F12(部分硬件可能是F9~F12的其他键),用USB引导安装。

部分用户使用盗版系统,Win7破解程序(比如WIN7 Activation.exe),需要引导分区可见, 右键“我的电脑”,选择“管理”->“磁盘管理”,右键引导分区,分配驱动器号。

Win/Linux双系统参考Partition分区。先安装Win系统,完成后安装Linux系统,设置GRUB 引导两个系统,细节参见Debian Install。如已安装好Linux系统,先在Linux系统下准备好 Windows系统分区,备份磁盘前1MB数据,之后正常Windows,安装完成后使用Live Linux或 Linux安装盘引导,重新刷入备份的1MB数据,调用"update-grub"更新grub,即可完成双 系统引导。

1.2 配置

1.2.1 输入法

谷歌拼音(google pinyin)输入法是我一直在用的输入法,高效安静。默认配置英文输入, 使用Ctrl+Shift切换,去除Ctrl+Space等配置(因Emacs频繁使用Ctrl+Space)。

谷歌拼音配置关闭状态切换,初始状态中文语言、标点,半角。皮肤黑白分明。词典 自动记录自造词,并调整词频。状态栏取消浮动状态栏。

Window 10热键设置路径控制面板\时钟、语言和区域\语言\高级设置\更改语言栏热键。 操作“在输入语言之间”配置为Ctrl+Shift,中英标点符号配置"Ctrl+.",全半角切换 "Shift+Space"。

1.2.2 Shell环境

大量文件需分类在各级文件夹下保存,相对Linux下的Shell(cd),Windows的目录切换操作 非常低效。MSYS2Cygwin均可提供功能Shell环境。之前多年一直在用Cygwin,后切换 到MSYS2,因为Cygwin缺少一个良好的包管理器(参见分析什么是好的包管理器),且性能 较MSYS2差,切换到了MSYS2,MSYS2的pacman在安装各类软件时,速度和便捷性都不错。

安装配置参见MSYS2

1.2.3 快捷键(热键)

每天需要频繁重复打开切换多个可执行程序和文件夹,操作乏味低效。自定义丰富的组合 热键,快速启动/退出/切换软件、进入指定文件夹,能大幅度提高效率和工作愉悦度。

典型地,"Ctrl+Win+I"进入工作目录,"Ctrl+Win+E"启动Emacs,"Ctrl+Win+M"启动MSYS2, "Win+g"启动浏览器Google搜索剪贴板内容1

AutoHotKey是Windows平台好用的工具之一,请参考AutoHotkey学习安装配置。

1.2.4 文件搜索

在硬盘空间动辄TB级的大数据时代,Windows的文件搜索效率导致其已不具有可用性。 Everything完美的解决了这个问题,支持正则,秒级完成。

1.2.5 Win7鼠标设置自然滚动(反方向滚动)

Windows8以下不支持直接配置自然滚动。需要自行更改注册表。

  • 控制面板查找鼠标(控制面板->硬件和声音->设备和打印机->鼠标)
  • 选择"硬件"页,点击需要更改的鼠标,一般是触控板
  • 查看详细信息页中的硬件ID,触控板可能是ACPI\LEN0036类似数值,鼠标是VID_*数值
  • 打开注册表编辑器,进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
  • ACPI设备不提供FlipFlopWheel项,无法配置
    • 在ACPI\LEN0036->DeviceParameters下添加FlipFlopWheel DWORD,设置1,结果无效
    • Thinkpad在控制面板下打开鼠标,在Thinkpad标签页选择高级->滚动,选中“切换方向”即可
  • VID设备在HID\VID_xxxx\设备下修改DeviceParameters为1
  • 注销重新登录,或者插拔鼠标

1.2.6 C盘空间管理(使用一段时间后空间占用变大)

  • Windows.ecb
    • 文件位置 C:\ProgramData\Microsoft\Search\Data\Applications\Windows
    • Windows搜索索引文件,用以加速搜索。此文件可以安全删除,但之后随着搜索使用

再次变大。

  • 在“控制面板->索引选项->高级”中,可设置目标文件夹到其他分区
  • 我使用everything搜索,效率更高。用此方法停止此服务:

开始->设置->组件服务(或开始->cmd, 运行services.msc),设置Windows Search 启动类型为禁止,并手动停止服务。

1.2.7 其他

请参考我的软件

2 Linux

2.1 Debian

2.1.1 20181025 updates

2.1.1.2 Makeing usb-install stick
  • Be carefully. We assume /dev/sdc is your usb stick
~$ sudo cp ~/Downloads/debian-9.5.0-amd64-netinst.iso /dev/sdc
2.1.1.3 Install progress ignore
2.1.1.4 Config
  • /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# stretch-updates, previously known as 'volatile'
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
  • If your WLAN could not worked, check firmware
~# dmesg
...
iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-6000g2a-6.ucode failed with error -2

I download linux-firmware git and find correct fw:

git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
  • Install sudo and config with nopasswd
~# apt-get update
~# apt-get install sudo
~# vi /etc/sudoers
yanyg   ALL=(ALL:ALL) NOPASSWD: ALL
  • Disable packagekit service because I always install/update manually
# ref: https://wiki.debian.org/Daemon
~$ sudo systemctl --now disable packagekit

2.1.2 安装

使用unetbootin制作USB安装盘,U盘引导安装。当前unetbootin支持FAT32,不支持NTFS。

Linux分区尝试过将/、boot、swap、home使用不同分区,多年使用经验证明几乎没有必要。 将home分区分离一定程度是有价值的————将来重格做新系统时,只格系统分区,保留home 分区,避免数据备份工作。

Win/Linux双系统安装,先安装Windows,再安装Linux,安装完Linux后,root权限下运行 update-grub 更新配置文件, 手动修改 defaults 设置默认操作系统,如果只安装了 Debian和Windows,一般更改/boot/grub/grub.cfg set defaults="2" 默认从Windows 启动。

GRUB图形配置和Windows图形配置在部分平台上有缺陷,会导致Windows开机过程中出现 花屏死机。设置GRUB为console模式解决此问题。Debian系统修改/etc/default/grub文件, 去掉 GRUB_TERMINAL=console 行注释,如没有此行直接在最后加入。修改完成后,需 执行 update-grub 使其生效。

2.1.3 配置(9.3.0)

2.1.3.1 APT源(apt source)

打开终端,使用su升级为root用户,执行本节操作。

参考https://wiki.debian.org/SourcesList。修改/etc/apt/sources.list如下,该文件 其他内容可用#打头注释或直接移除。

deb  http://deb.debian.org/debian stretch main contrib non-free
deb-src  http://deb.debian.org/debian stretch main contrib non-free

deb  http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src  http://deb.debian.org/debian stretch-updates main contrib non-free

deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

9.3.0版本自启动服务unattended-upgrades后台更新,这会占用/var/lib/dpkg/lock锁, 导致后面的安装失败。我个人更喜欢自己控制更新与软件包安装,因此直接停掉该服务:

Step 1
修改文件/etc/apt/apt.conf.d/20auto-upgrades停止自动升级:

APT::Periodic::Update-Package-Lists "0"; APT::Periodic::Unattended-Upgrade "0";

Step 2
立即停止服务 systemctl stop unattended-upgrades

查看可以看是否已停止:

~# systemctl list-units -t service | grep unattended-upgrades
# or use lsof
~# sudo lsof | grep /var/lib/dpkg/lock

执行更新,超级用户安装vim和sudo:

~# apt-get update
~# apt-get install vim sudo

编辑/etc/sudoers,在root行下面添加yanyg用户:

~# vim /etc/sudoers
root    ALL=(ALL:ALL) ALL
yanyg   ALL=(ALL:ALL) ALL

/etc/sudoers禁止普通写入,vim执行 :x!强制写入。

请退出超级用户,后续安装使用sudo进行,降低操作风险。

2.1.3.2 安装研发环境

APT源已配置好sudo,请使用添加了sudo的普通用户安装如下软件包。

研发环境软件包下载大小为200MB~300MB,安装后占用在600MB~1GB之间。如下开发环境安装 后可构建Emacs、内核、模块。

~$ yes | \
    sudo apt-get install gcc linux-headers-4.9.0-4-amd64 tmux terminator \
         manpages manpages-dev manpages-zh manpages-posix manpages-posix-dev \
         gnome-shell-extension-taskbar gnome-shell-extension-weather \
         gnome-shell-extension-system-monitor \
         gnome-shell-extension-autohidetopbar \
         gnome-shell-extension-multi-monitors \
         gconf-service gconf2-common libappindicator1 libdbusmenu-glib4 \
         libdbusmenu-gtk4 libgconf-2-4 libindicator7 \
         libappindicator3-0.1-cil ntp \
         autoconf automake libtool cmake info texinfo texi2html gettext \
         gettext-doc autopoint libasprintf-dev libgettextpo-dev \
         libxaw7-dev libxaw3dxft8-dev libxaw-doc libxt-doc \
         libx11-dev libgtk3.0-cil-dev libwxgtk3.0-dev \
         libgnutls28-dev libtiff5-dev giflib-tools libgif-dev libjpeg-dev \
         gmp-doc libgmp10-doc libmpfr-dev gnutls-doc gnutls-bin liblzma-doc \
         libtinfo-dev libncursesw5-dev libncurses5-dev \
         mailutils mailutils-doc xaw3dg-dev libcairo2-dev librsvg2-dev \
         liblcms2-dev imagemagick libmagick++-dev \
         libdbus-1-dev libdbus-glib-1-dev libdbus-c++-dev gconf2 \
         libgconf2-dev libm17n-dev libotf-dev libxft-dev libcairo2-dev \
         gir1.2-poppler-0.18 libpoppler-dev libpoppler-glib-dev \
         libpoppler-dev libpoppler-glib-dev libpoppler-private-dev \
         global fcitx-googlepinyin \
         fonts-arphic-bkai00mp fonts-arphic-bsmi00lp \
         fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-arphic-ukai \
         rdesktop mplayer ffmpeg vlc libgtk-3-dev mjpegtools mediainfo \
         libwebkitgtk-3.0-dev libwebkitgtk-dev libwebkit2gtk-4.0-dev \

默认安装为英文en_US.UTF-8的,中文环境需要安装locales zh_CN.UTF-8:

~$ sudo dpkg-reconfigure locales

不安装zh_CN.UTF-8 locales时,emacs无法输入中文。

2.1.3.3 配置上网环境

安装Google Chrome浏览器,并安装lantern代理:

~$ sudo dpkg -i google-chrome-stable-20171220.deb
~$ sudo dpkg -i lantern-installer-64-bit-20171219.deb

安装后在终端运行lantern,确认可以正常启动运行,如果报告缺少某些库退出,用apt-get 手动安装对应软件包。

Lantern Debian
GitHub Lantern 4.4.1 Deb
Google Chrome
Google Chrome Amd64 Deb (Current Version)
2.1.3.4 配置X11界面

启动tweak tool配置自己预期的X桌面环境:

  • static workspace: 4
  • auto hide top bar
  • config weather: Beijing, CN
2.1.3.5 时间配置

通常会遇到时间Linux/Windows下时间不一致问题。这是因为两者一个使用UTC,一个使用 Local-RTC导致,修改为一致即可。修改时间与时区命令如下:

~$ sudo timedatectl set-local-rtc 0
~$ sudo timedatectl set-timezone Asia/Shanghai
~$ sudo timedatectl set-ntp yes

重启NTP服务,立即与网络时间同步:

~$ sudo /etc/init.d/ntp restart
2.1.3.6 字体增强

Windows微软雅黑字体设计良好,是我的Emacs默认配置。Linux系统下创建 /usr/share/fonts/windows目录,从Windows系统目录Windows/Fonts(一般是 c:\Windows\Fonts)拷贝文件到新建目录/usr/share/fonts/windows, 执行 sudo fc-cache -fsrv 更新缓存。

Debian APT有提供更多字体,使用如下方式查找安装:

~$ apt-cache search chinese | grep font

目前的配置英文字体使用Source Code Pro,中文使用微软雅黑(来自Windows)。

2.1.3.7 其他配置
  • 参考我的软件
  • Emacs参考Emacs笔记
    • Debian 9.3 + emacs 26.0.90 en_US.UTF-8安装,需要安装zh_CN.UTF-8 locales、 配置 LC_CTYPE=zh_CN.UTF-8、设置 fcitx后才可输入中文。
  • Alt-Tab切换只显示当前workspace窗口
    • follows:
      1. install dconf-editor
~$ sudo apt-get install dconf-editor
  1. exec dconf-editor, Navigate to: org -> gnome -> shell -> app-switcher, Set "current-workspace-only" to true
  2. Another: gsettings set org.gnome.shell.app-switcher current-workspace-only true

2.1.4 配置(8.x.x)

2.1.4.1 APT源(apt source)

配置 /etc/apt/sources.list

deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free

deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
2.1.4.2 Thinkpad Trackpoint(小红点)配置

Debian WIKI中配置介绍, 不同Debian配置方式有差异. 示例如下:

~$ uname -a
Linux t400 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2 (2017-04-30) x86_64 GNU/Linux
~$ su
~# cat > /usr/share/X11/xorg.conf.d/20-thinkpad.conf.1 <<EOF
>  Section "InputClass"
>      Identifier "Trackpoint Wheel Emulation"
>      MatchProduct       "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|ThinkPad Compact USB Keyboard with TrackPoint|USB Trackpoint pointing device"
>      MatchDevicePath    "/dev/input/event*"
>      Option             "EmulateWheel"          "true"
>      Option             "EmulateWheelButton"    "2"
>      Option             "Emulate3Buttons"       "false"
>      Option             "XAxisMapping"          "6 7"
>      Option             "YAxisMapping"          "4 5"
>  EndSection
> EOF

# comment: save all your X11 work and exit, then restart X11
~# /etc/init.d/gdm3 restart

ArchLinuxthinkwiki也有介绍. 单击真心不好用. :)

3 Common

3.1 Google

使用代理设置时,google会选择错误的位置,默认搜索优先当地语言结果。通过链接 https://www.google.com/preferences配置Region Settings。

4 Partition

T440分区清单示例如下。sda1安装Windows,sda2安装Debian,sdb做数据盘:

~$ sudo fdisk -luc
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 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
Disklabel type: dos
Disk identifier: 0xbfdedd62

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 251660287 251658240   120G  7 HPFS/NTFS/exFAT
/dev/sda2       251660288 488397167 236736880 112.9G 83 Linux


Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa348c330

Device     Boot      Start        End   Sectors   Size Id Type
/dev/sdb1             2048  419432447 419430400   200G 83 Linux
/dev/sdb2        419432448  943720447 524288000   250G  7 HPFS/NTFS/exFAT
/dev/sdb3  *     943720448 1153435647 209715200   100G  7 HPFS/NTFS/exFAT
/dev/sdb4       1153437694 1953525167 800087474 381.5G  f W95 Ext'd (LBA)
/dev/sdb5       1468016640 1572874239 104857600    50G 83 Linux
/dev/sdb6       1572876288 1589653503  16777216     8G 82 Linux swap / Solaris
/dev/sdb7       1589655552 1835415551 245760000 117.2G  7 HPFS/NTFS/exFAT
/dev/sdb8       1835417600 1953523711 118106112  56.3G  7 HPFS/NTFS/exFAT
/dev/sdb9       1153439744 1468016639 314576896   150G  7 HPFS/NTFS/exFAT

5 TODO 随身USB盘

随身携带一个大容量USB(32G/64G), 包含完整可引导的操作系统, 以及Debian, Redhat, CentOS, Win 7, Win 10操作系统的安装包, 在特定环境下直接运行USB系统工作, 或者 解决系统引导异常. 这在开发底层系统, 或对系统做深度定制时是常见的.

5.1 工作原理

GRUBgrub4dos提供多系统引导, 安装Linux到USB盘, 或用LFS制作自己的系统.

5.2 制作方式

5.2.1 分区

使用fdisk分区. part1用做grub, part2用做live linux, part3用做Linux安装系统, part4 是扩展分区, part5/6分别用做win安装盘和win下数据盘. 各分区大小根据USB和安装盘 大小进行随意调整. 如下是64GB USB示例:

yanyg@t:~$ sudo fdisk -l /dev/sdc

Disk /dev/sdc: 57.9 GiB, 62109253632 bytes, 121307136 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
Disklabel type: dos
Disk identifier: 0xcad4ebea

Device     Boot     Start       End  Sectors  Size Id Type
/dev/sdc1            2048  33556479 33554432   16G 83 Linux
/dev/sdc2        33556480  75499519 41943040   20G 83 Linux
/dev/sdc3        75499520  88082431 12582912    6G 83 Linux
/dev/sdc4        88082432 121307135 33224704 15.9G  5 Extended
/dev/sdc5        88084480 100667391 12582912    6G  7 HPFS/NTFS/exFAT
/dev/sdc6       100669440 121307135 20637696  9.9G  7 HPFS/NTFS/exFAT

脚注:

1

Win10游戏录制占用该快捷键,进入 开始->设置->游戏->关掉“使用游戏栏记录游戏剪辑、屏幕截图和广播”。