2018年7月28日 星期六

安裝 linux mint

我很少將 Linux mint 安裝到硬碟, 最多將 iso 檔複製到硬碟後用 grub 來啟動它, 因 grub 可以將核心檔(vmlinuz) 及啟動檔(initrd.lz)從 iso 檔提取出來,只要將指示寫進 grub.cfg 啟用 loopback 命令引用loop裝置, Ubuntu 的核心系統會利用 boot=casper  iso-scane/filename 去找尋 iso 檔,之後將它掛載(mount)到 root 底下(/cdrom),Linux kernel 最後會將檔案/cdrom/casper/filesystem.squashfs 使用 overlay 檔案系統掛載(mount -t overlay)方式形成特殊的檔案系統, 底下列出我使用的 grub.cfg(不要搞混 grub 的 root 與 linux 系統的 root ,它是兩個獨立系統的詞彙用語):


menuentry "GPT Linux mint 191 Read Only" {
  set root=(hd0,1)
  set iso=/boot/linux191.iso
  loopback loop $iso
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$iso  locale=zh_TW.UTF-8
  initrd (loop)/casper/initrd.lz
}

一旦 linux 啟動完,檔案系統掛至定位, 只要將檔案系統複製到硬碟的 EXT4 分區(/dev/sda3), 一些目錄像是 /proc, /sys, /cdrom, /home, /media, /mnt, /run,/srv, /tmp, /boot 並不需要複製,只要用命令 mkdir 產生目錄,最後再將核心(vmlinuz)及啟動(initrd.lz)兩個檔案複製到檔案系統內(/boot). 開啟終端機,輸入以下命令(備註: /dev/sda3 需事先規劃成 ext4系統)來複製 Linux Mint 整個檔案系統:

   sudo su
   mount   /dev/sda3    /mnt
   for rd in bin dev etc lib lib64 opt root sbin usr var; do cp -aR /$rd /mnt/$rd; done
   for md in cdrom home media mnt proc run srv sys tmp boot;  do mkdir /mnt/$md; done
   cp    /cdrom/casper/vmlinuz    /mnt/boot
   cp    /cdrom/casper/initrd.lz    /mnt/boot
   sync;sync;sync
   umount /mnt
   reboot

系統複制好後,必須要有密碼才能登錄 linux 系統,利用 kermel 選項的  rw  init=/bin/bash 就可以讓 linux 直接使用超級使用者開啟終端機接受命令. 我修改了 grub.cfg 添加一些選單項目(memuemtry) :

set timeout=3
menuentry "GPT Linux mint@hardisk  /dev/sda3 " {
  set   root=(hd0,3)
  linux   /boot/vmlinuz   root=/dev/sda3    ro   locale=zh_TW.UTF-8
  initrd  /boot/initrd.lz

}

menuentry "Run linux's shell to change password for any user" {
  set   root=(hd0,3)
  linux   /boot/vmlinuz   root=/dev/sda3   rw   init=/bin/bash
  initrd  /boot/initrd.lz
}

menuentry "GPT Linux mint 191 Read Only" {
  set root=(hd0,1)
  set iso=/boot/linux191.iso
  loopback loop $iso
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$iso  locale=zh_TW.UTF-8
  initrd (loop)/casper/initrd.lz
}

重新開機,按著 ESC 鍵, grub 就會跳出選單,選第2個項目,讓 linux 先進入超級使用者的交談模式(super user shell), 敲入 password 指令重設超級使用者的密碼,利用 useradd 添加使用者, mkdir 建立一般使用者的家目錄, chown 賦予使用者權限, password 再重設一般使用者的密碼,修改密碼時系統會要求輸入兩次一模一樣的密碼做確認:

       #password
       ...
       #useradd    mason
       #mkdir    /home/mason
       #chown   mason.mason   /home/mason
       #password    mason
       ...
       #reboot

重新開機(gurb內定使用最前面的選單開機),使用 mason 身份及密碼去登錄, 登錄後在終端機可以用 su 命令,敲入超級使用者密碼,就可以變身為超級使用者,管理系統的工作

p.s. 安置裝好後,還有一些需要再調整的:
1. 修改 /etc/lightdm/lightdm.conf  將裡面的 autologin-user=mint 改成想要登錄的名稱,例如 autologin-user=mason,就可讓 mason 無需輸入密碼,自動登錄
2. 將 /etc/timezone 內容修改成 Asia/Taipei 符合台灣的時區
3. sudo apt-get install gcin 加入中文輸入法
4. 修改 /etc/sysctl.conf , 加入一行  vm.swappiness=1
5. 修改 /etc/passwd ,  將一般使用者登錄程序改用 /bin/bash, 預設可能會是 /bin/sh
6. 如果要初始化一些想要執行的程序, 可以修改 /etc/rc.local 讓它開機自動啟動

沒有留言: