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环境
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.1 Download debian 9.5.0
- From official websites
- https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso
- From Tsinghua mirror
- https://mirrors.tuna.tsinghua.edu.cn/debian-cd/9.5.0/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso
- Relative Info
- https://mirrors.tuna.tsinghua.edu.cn/
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
- Install development env. See Install Debian Development Env.
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:
- install dconf-editor
- follows:
~$ sudo apt-get install dconf-editor
- exec dconf-editor, Navigate to: org -> gnome -> shell -> app-switcher, Set "current-workspace-only" to true
- 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
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.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
脚注:
Win10游戏录制占用该快捷键,进入 开始->设置->游戏->关掉“使用游戏栏记录游戏剪辑、屏幕截图和广播”。