Win 10 UEFI + Ubuntu 18.04 UEFI 双系统 (by quqi99)
問題
本人昨天買了一塊SSD, 結(jié)果后來發(fā)現(xiàn)原來這塊SSD存在硬件質(zhì)量問題, 造成了軟件上的種種詭異問題, 如U盤時(shí)而識(shí)別時(shí)而不識(shí)別, 如觸摸屏左鍵時(shí)而抽風(fēng), 如ghost安裝win10時(shí)幾乎到100%的進(jìn)度時(shí)忽然來一個(gè)無響應(yīng), 重啟系統(tǒng)后出現(xiàn)了"To interrupt normal start up, press the blue ThinkVantage button.", 此時(shí)鍵盤無反應(yīng), 既進(jìn)不了系統(tǒng), 也進(jìn)不了BIOS. 撥CMOS電源也無效. 最后發(fā)現(xiàn)是這塊SSD有質(zhì)量問題. 估計(jì)是SSD有控制器主要是軟件吧, 控制器軟件有bug導(dǎo)致運(yùn)行g(shù)host這種軟件時(shí)也能導(dǎo)致硬件掛住.
也正是因?yàn)檫@個(gè)問題吧, 七搞八搞, 一不小心在重試的過程中將之前的一塊linux分區(qū)誤刪了, 于是之前打算的遷移雙系統(tǒng)的想法泡湯(當(dāng)然, 那些通過分區(qū)助手或者ghost來遷移分區(qū)的網(wǎng)上文章照著做沒一個(gè)是成功的).
這樣, 有機(jī)會(huì)事隔多年再一次重裝雙系統(tǒng)的機(jī)會(huì), 但是發(fā)現(xiàn)世道變了, 之前百試不爽的方法現(xiàn)在行不通了. 后經(jīng)查證, 主要原因是ubuntu 18.04開始默認(rèn)采用UEFI, 而win10默認(rèn)仍然是MBR. 這樣會(huì)導(dǎo)致一系列的問題, 如報(bào)錯(cuò): grub-efi-amd64-signed failed to install 18.04, 統(tǒng)一采用UEFI安裝.
BIOS設(shè)置
在BIOS中將Boot Mode設(shè)置為UEFI Only, 如果有Secure Boot選項(xiàng)還要disable它(不做這一步可能會(huì)造成按F12鍵之后無法找到U盤)
注: 改成UEFI only之后, 運(yùn)行雙系統(tǒng), 四系統(tǒng)都沒問題, 但后來進(jìn)不了U盤的livecd, 報(bào): couldn’t get UEFI db list, 所以只得改回Both, 但UEFI優(yōu)先.
安裝win10
- 下載大白菜UEFI專版 - http://www.bigbaicai.com/download.html?down2 (20210321更新,注:目前已沒有UEFI專版,下載普通版即可。使用大白菜一般只能通過ghost iso安裝,選擇msdn iso原版時(shí)總是說無法選擇iso,原版iso可以通過ultraiso寫入usb即可。當(dāng)然大白菜也提供了PE工具箱)
- 下載win10 ghost - axel -n 10 http://xz.win10cjb.com/18.5/win10_64/DEEP_Win10x64_201805.rar
- 制作大白菜啟動(dòng)U盤, 如果界面上有UEFI字眼就點(diǎn)上(不記得了, 有就點(diǎn)上), 還要注意一點(diǎn), 記得點(diǎn)里面的格式轉(zhuǎn)換, 將FAT32格式(HDD-FAT32)轉(zhuǎn)換成NTFS(HDD-NTFS)轉(zhuǎn)換, 否則HDD-FAT32格式不能拷貝大于4G的ghost文件哦,
- 按F12選U盤啟動(dòng)進(jìn)入大白菜后, 用DiskGenius工具重新分區(qū), 必須將BIOS+MBR格式轉(zhuǎn)UEFI+GPT格式. 分區(qū)表格式為GUID而不是MBR, window上管EFI分區(qū)叫ESP/MSR分區(qū)
- 注意, 不要修改推薦的卷標(biāo), 這個(gè)卷就是指向的ESP/MSR分區(qū).
安裝win10后
安裝win10后需要將禁用掉快速啟動(dòng), 否則會(huì)造成按F12無法選擇U盤啟動(dòng). 菜單路徑為: “設(shè)置 -> 系統(tǒng) -> 電源與睡眠 -> 其他電源設(shè)置 -> 選擇電源按鈕的功能 -> 更改當(dāng)前不可用的設(shè)置 -> 啟動(dòng)快速啟動(dòng)”
安裝ubuntu 18.04
像安裝win10一樣, 一樣要注意重要一點(diǎn), 需創(chuàng)建大概300M左右的UEF分區(qū), 另外, 還可以創(chuàng)建一個(gè)根分區(qū)和一個(gè)備份文件用的bak分區(qū).
注意, windows非常霸道, 它是總修改bios里的啟動(dòng)順序, 將它的"Windows boot Manager"放在"ubuntu grub"的前面, 可以在bios里鎖定啟動(dòng)順序
安裝win7
win7若沒有sata的驅(qū)動(dòng), 所以得先改回IDE, 裝完win7之后再改回AHCI, 否則也容易掛在啟動(dòng)界面不動(dòng)了.
注: 我未遇到以上問題, 可能因?yàn)槲已b的win7并不是原版的, 已經(jīng)帶了sata驅(qū)動(dòng)
加裝SSD
如果加裝了SSD之后呢? 那得注意:
- 裝win10時(shí)同樣需要進(jìn)大白菜或老毛桃后用DiskGenius在SSD上劃分ESP/MSR分區(qū)
- 裝ubuntu時(shí), 分區(qū)處也要?jiǎng)?chuàng)建EFI分區(qū), 同時(shí)grub設(shè)置安裝在SSD上, 相當(dāng)于: grub-install /dev/sdX.
- bios里選擇哪塊硬盤啟動(dòng). 其實(shí)在SSD上安裝grub后, 這個(gè)grub會(huì)連HDD上原先的win10與ubuntu一起放在啟動(dòng)列表里. 注意, windows非常霸道, 它是總修改bios里的啟動(dòng)順序, 將它的"Windows boot Manager"放在"ubuntu grub"的前面, 可以在bios里鎖定啟動(dòng)順序
- 有時(shí)候需要對(duì)ssd優(yōu)化, 例如不要將swap分區(qū)放在ssd以延長(zhǎng)壽命, 如更改i/o調(diào)度策略為noop, 如使用bcache
問題
裝完之后進(jìn)入win10發(fā)現(xiàn)thinkpad小紅點(diǎn)左鍵失靈, 再切換進(jìn)ubuntu發(fā)現(xiàn)小紅點(diǎn)左鍵正常(實(shí)際上, 5次大概有一次有問題, 只是登錄界面左鍵與右鍵似乎混亂了, 登錄之后就正常了. 再換PE進(jìn)系統(tǒng)發(fā)現(xiàn)小紅點(diǎn)左鍵依然有問題. 所以基本斷定和硬件沒有關(guān)系, 應(yīng)該是win10上的小紅點(diǎn)驅(qū)動(dòng)有問題.
但搜索了很多帖子, 沒一個(gè)能解決問題的, 聯(lián)想的小紅點(diǎn)win10驅(qū)動(dòng)做得太爛了. 所以決定回到win7, 回到win7之后該問題解決. 另外, PE回到win7的過程中不會(huì)傷害之前SSD上安裝的ubuntu系統(tǒng), 也不會(huì)傷害原HDD里的雙系統(tǒng).
數(shù)據(jù)遷移
現(xiàn)在在筆記本x220t上裝了win10, 也裝了ubuntu 18.04, 但是如何將工作機(jī)t440p的根分區(qū)遷移到x220t的根分區(qū)呢? 因?yàn)槲覀円呀?jīng)在x220t上安裝了ubuntu 18.04, 這樣省去了采用命令劃分EFI分區(qū), 以及最后填充EFI分區(qū)的步驟. 現(xiàn)在將精力集中在如何快速遷移根分區(qū)上.
- 目的機(jī)x220t因?yàn)橛袑懖僮? 故要以livecd啟動(dòng), 啟動(dòng)ssh server, 并將根分區(qū)加載到/mnt
- 源機(jī)t440p只有讀操作故不需要以livecd啟動(dòng). 但如果以livecd啟動(dòng)的話, 未加載根分區(qū)所依賴的分區(qū)如/bak分區(qū), 此時(shí)如果又沒掛載/bak分區(qū)的話, rsync命令遷移一些指向/bak分區(qū)的軟鏈時(shí)會(huì)報(bào)錯(cuò)退出. 人工刪除該軟鏈重新運(yùn)行即可. 且需要注意 rsync命令中的/mnt/后應(yīng)該有/, 否則會(huì)將mnt目錄遷移到根分區(qū)的mnt目錄下.
- 可選, 如果之前沒有備份/mnt/boot/grub/grub.cfg, 這時(shí)也可以重新生成. 更新grub, 此時(shí)會(huì)報(bào)"canot find EFI directory", 這樣會(huì)導(dǎo)致這時(shí)生成grub時(shí)無法找到原HDD中的雙系統(tǒng), 不要緊, 只要找到目前SSD中的雙系統(tǒng)即可. 呆會(huì)下一步再運(yùn)行一下grub命令即可解決
- 可選, 如果之前沒有備份/mnt/etc/fstab, 這時(shí)也可以重新生成. 修復(fù)fstab, 之前運(yùn)行上述遷移命令前忘了備份x220t上的fstab系統(tǒng), 導(dǎo)致它被覆蓋, OK, 我們修復(fù)它.
- 這時(shí)重啟系統(tǒng), 就可以以grub選擇啟動(dòng)SSD上的雙系統(tǒng)了, 如果還想把HDD的原有的雙系統(tǒng)也加到grub的話, 那進(jìn)ubuntu系統(tǒng)后再執(zhí)行一次update-grub命令即可.
- 這種遷移方式效果非常好, 一個(gè)rsync命令搞定, 各種工作軟件不需要再重裝了. 呵呵
bcache
sudo apt install bcache-tools # sdb is ssd, sda is hdd # bcache will refuse to instantiate if it looks like a filesystem already exists on the device sudo umount /data sudo umount /bak sudo wipefs -a /dev/sdb5 sudo wipefs -a /dev/sda5 # creating the bcache, --discard flag is for TRIM sudo make-bcache -C /dev/sdb5 -B /dev/sda5 --block 4k --discard --writeback # creae and mount the filesystem sudo mkfs.ext4 /dev/bcache0 sudo mkdir -p /bak# remember to comment /bak and /data as well, or it will throw: Welcome to emergency mode vi /etc/fstab #UUID=85d5095b-4288-4cc3-8ac7-aae3ed8e872c /bak ext4 defaults 0 2 #UUID=e246b3d0-6905-4602-a3ae-2f2162f9871f /data ext4 defaults 0 2 /dev/bcache0 /bak ext4 defaults 0 2# other commands ls -la /sys/fs/bcache/ umount /bak echo 1 > /sys/block/bcache0/bcache/stop echo f3e2ac40-5dc4-4e28-880c-4bbb6cd415e3 /sys/block/bcache0/bcache/detach lsblk cat /sys/block/bcache0/bcache/state cat /sys/block/bcache0/bcache/cache_mode cat /sys/block/bcache0/bcache/dirty_data bcache-super-show /dev/sda5 bcache-super-show /dev/sdb5 lsblk#其他, 測(cè)試虛機(jī)中ceph盤的性能 The IO path is: VM -> RBD -> compute node -> network -> OSD(primary + 2 replicas) -> bcache (nvme + hdd)Stage 1, exclude VM, check IO performance on RBD directly Create a RBD in cinder-ceph pool and run rbd bench to check IOPS rbd create cinder-ceph/canonical-test-rbd --size 20G rbd bench cinder-ceph/canonical-test-rbd --io-size=4K --io-threads=1 --io-total=10G --io-pattern=rand --io-type=write rbd bench cinder-ceph/canonical-test-rbd --io-size=4K --io-threads=1 --io-total=10G --io-pattern=rand --io-type=read rbd bench cinder-ceph/canonical-test-rbd --io-size=4M --io-threads=1 --io-total=10G --io-pattern=rand --io-type=write rbd bench cinder-ceph/canonical-test-rbd --io-size=4M --io-threads=1 --io-total=10G --io-pattern=rand --io-type=read rbd rm cinder-ceph/canonical-test-rbdStage 2, check network between compute node and the nodes which store test RBD’s primary or replicas This can be done by iperfStage 3, IO performance on OSD nodes hold the RBD’s primary and 2 replicas We can not test IO performance on OSD devices directly, so need to find a way to test bcache performance on OSD node, we can use /var/lib/virt/image as test We can possibly use this folder /var/lib/virt/images to verify IO performance, but there is ext4 built on this bcache, so file system cache could affect a bit, but we should be able to roughly see the overall performance dd if=/dev/zero of=/var/lib/virt/images/fiotest-image bs=1M count=10240 fio --name=fiotest --rw=randwrite --bs=4k --runtime=30 --ioengine=libaio --iodepth=128 --numjobs=1 --filename=/var/lib/virt/images/canonical-fiotest-image --direct=1 --sync=1 --group_reporting --time_based=1 --eta-newline 1 fio --name=fiotest --rw=randread --bs=4k --runtime=30 --ioengine=libaio --iodepth=128 --numjobs=1 --filename=/var/lib/virt/images/canonical-fiotest-image --direct=1 --sync=1 --group_reporting --time_based=1 --eta-newline 1 fio --name=fiotest --rw=randwrite --bs=4m --runtime=30 --ioengine=libaio --iodepth=128 --numjobs=1 --filename=/var/lib/virt/images/canonical-fiotest-image --direct=1 --sync=1 --group_reporting --time_based=1 --eta-newline 1 fio --name=fiotest --rw=randread --bs=4m --runtime=30 --ioengine=libaio --iodepth=128 --numjobs=1 --filename=/var/lib/virt/images/canonical-fiotest-image --direct=1 --sync=1 --group_reporting --time_based=1 --eta-newline 1 rm -f /var/lib/virt/images/fiotest-image兩個(gè)參數(shù):
- sequential_cutoff默認(rèn)為4k, 就是大于4k的就是繞開NVME直接往HDD寫, 為0就是disable這個(gè)特性。所以這個(gè)要設(shè)置為0, 不然IO性能會(huì)很差。
- 另外bcache的cache_available_percent(/sys/block/bcache0/bcache/cache/cache_available_percent)來看bacache的ssd/cache是不是被寫滿了,被寫滿了IO(沒寫時(shí)是100,降到30就差不多快滿了)會(huì)直接寫backing HDD,這樣IO會(huì)很慢。
恢復(fù)bak分區(qū)
bak分區(qū)存放數(shù)據(jù), 由bcache加速
rsync -xavP --numeric-ids --exclude='images' /bak/ root@192.168.99.128:/bak/調(diào)整分區(qū)
一個(gè)分區(qū)不夠用時(shí), 可以使用gpartd合并相鄰的空閑分區(qū).注意一點(diǎn), 要合并的分區(qū)必須是umount狀態(tài)時(shí)才能合并.
SSD優(yōu)化
# disable scanning for btrfs filesystems when boot sudo apt-get purge btrfs-tools sudo update-initramfs -ukall# enable TRIM feature by adding discard option # what's TRIM - https://blog.csdn.net/quqi99/article/details/50963308 # the option noatime is used to disable access time for a file sudo hdparm -I /dev/sdb |grep TRIM vi /etc/fstab LABEL=ROOT_SSD / ext4 noatime,discard,errors=remount-ro 0 1 sudo mount -o remount /dev/sdb8 sudo mount |grep sdb8 |grep discard# Try not to use swap space unless it's running out of memory. echo 1 > /proc/sys/vm/swappiness# avoid visiting ssd by using ramdisk for /tmp instead of tmpfs vim /etc/fstab tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0 sudo mount -o remount /# Set chrome to use ramdisk cache cd ~/.cache/google-chrome/Default rm -rf Cache sudo ln -s /tmp Cache rm -rf Media\ Cache/ sudo ln -s /tmp Media\ Cache# Use noop for I/O elevator cat /sys/block/sda/queue/scheduler sudo vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop" sudo update-grub# Test SSD speed $ sudo hdparm -Tt /dev/sdb /dev/sdb:Timing cached reads: 9128 MB in 2.00 seconds = 4569.28 MB/secTiming buffered disk reads: 818 MB in 3.01 seconds = 272.07 MB/sec# Make sure 4K align $ sudo fdisk -lu |grep sdb |grep sectors Disk /dev/sdb: 232.9 GiB, 250059350016 bytes, 488397168 sectors# Health check $ sudo smartctl -s on -a /dev/sdb |grep PASSED SMART overall-health self-assessment test result: PASSED20200808更新
為什么新電腦think x1 yoga這次又要安裝雙系統(tǒng),那是因?yàn)閣in10上的cmder似乎丟失鍵盤按鍵, 見:https://github.com/cmderdev/cmder/issues/258
與: https://blog.csdn.net/quqi99/article/details/105598417
需關(guān)閉win10上的硬盤加密功能:
另外,用ubuntu上的Startup Disk Creation創(chuàng)建u盤啟動(dòng)盤時(shí)總不好使,后來證明是U盤質(zhì)量問題.
目前ubuntu 20.4還遇到一個(gè)尚未解決的問題,鎖屏?xí)r敲密碼hang在那兒,日志似乎是:
20210321更新 - 安裝工控機(jī)
今天買了一個(gè)典籍的工控機(jī),安裝win10時(shí)遇到如下問題:
- 正常情況是按F2進(jìn)BIOS
- 但使用大白菜通過Ghost安裝一個(gè)win10之后,無法進(jìn)入BIOS
- 在win10中禁用快速啟動(dòng)后仍然無法進(jìn)入BIOS
- 原來典籍現(xiàn)在默認(rèn)的是UEFI而不是BIOS,win10對(duì)BIOS和UEFI都做了手腳,對(duì)于BIOS是禁用快速啟動(dòng)可按F2進(jìn)BIOS,但對(duì)于win10是啟動(dòng)win10后再按shift不動(dòng)再點(diǎn)擊restart,這樣再進(jìn)入U(xiǎn)EFI (也可在啟動(dòng)win10后在setting中搜索UEFI進(jìn)入)。那問題來了,BIOS是可以設(shè)置來電啟動(dòng)的,現(xiàn)在使用UEFI如何設(shè)置此功能呢?
- 如果刪除win10之后,就再也沒有鍵進(jìn)入U(xiǎn)EFI了,這時(shí)可以使用F11來選擇usb或者進(jìn)入U(xiǎn)EFI
- 從msdn下載的iso不是ghost,可通過UltraISO寫入U(xiǎn)盤中。密鑰可通過skms + slmgr注冊(cè). 我們這里使用原版的iso (只是通過大白菜分區(qū)了)
- 但是在安裝win10選擇分區(qū)時(shí),報(bào):windows canot be installed to this disk, the selected disk is of the GPT partiton style, 也許是因?yàn)橛么蟀撞朔謪^(qū)為GPT的原因嗎?
- 于是進(jìn)UEFI將改成’UEFI only",但這會(huì)造成無法識(shí)別啟動(dòng)U盤,只好將"Boot option filter"又改回"UEFI and Legacy",但只是將Storage改為’UEFI only", 但問題依舊。
- 然后在win10分區(qū)的界面按"shift + f10", 輸入diskpart, 然后再輸入’list disk’, ‘select disk 0’, ‘clean’, 'convert mbr’這樣會(huì)將之前大白菜建的GPT分區(qū)全部刪除再轉(zhuǎn)化成MBR分區(qū)。
- 這樣就用msdn原版iso安裝win10成功了。
- 區(qū)域設(shè)置成US,這樣microsoft store不會(huì)閃退(還不能用的話可以reset, 右鍵點(diǎn)擊開始按鈕>運(yùn)行>輸入wsreset回車,等待彈出的黑色窗口消失后自動(dòng)打開Microsoft Store再進(jìn)行使用),同時(shí)也可以安裝Your Phone
- 重置網(wǎng)絡(luò) - netsh int ip reset && netsh winsock reset
- hyper-v下安裝android-x86或Bliss OS(更好), 它不是anroid模擬器,而是基于x86的android
20210322更新 - Surface Pro3如何進(jìn)入U(xiǎn)SB啟動(dòng)盤
對(duì)于Surface Pro3進(jìn)入U(xiǎn)EFI的方法是,關(guān)機(jī),插USB啟動(dòng)盤,按住音量+鍵再按電源鍵,看到UEFI界面后松音量鍵,在UEFI中關(guān)閉可信計(jì)算,將啟動(dòng)順序設(shè)置成"USB -> SSD",這樣再Exit UEFI重啟即可進(jìn)入U(xiǎn)SB啟動(dòng)盤。但是實(shí)測(cè):
- 大白菜制作的PE + Ghost啟動(dòng)盤可以進(jìn)入PE (UEFI格式)
- UltraISO制作的MSDN ISO啟動(dòng)盤無法進(jìn)入 (MBR格式)
原因是UltraISO制作的是MBR格式,改為微軟官方的MediaCreationTool20H2工具制作usb啟動(dòng)盤就OK了(不需要事先下載鏡像,它會(huì)通過網(wǎng)絡(luò)自動(dòng)下載,速度還可以)。
要將win10 1909升級(jí)到2004的話,直接點(diǎn)擊usb啟動(dòng)盤或者ISO中中的setup.exe自動(dòng)升級(jí),升級(jí)要注意一點(diǎn),之前的安裝就應(yīng)該采用中文版的,現(xiàn)在usb里也得是中文版,這樣升級(jí)之前個(gè)人數(shù)據(jù)和應(yīng)用數(shù)據(jù)才不會(huì)丟。否則,語言不同只能將個(gè)人數(shù)據(jù)留下來。
使用MediaCreationTool20H2是不需要事先下載ISO的,當(dāng)然如果一定要下載,下面有一個(gè)迅雷的鏈接,是win10 2004版 (包括home, pro等):
優(yōu)化win10
1, 關(guān)閉安全,搜索"defen"打開windows安全中心,點(diǎn)"病毒與防護(hù)->管理設(shè)置"關(guān)閉所有的安全選項(xiàng)。然后搜索"services.msc"禁用"Security Center"服務(wù)。 2, 關(guān)閉IPv6, 禁用"IPHelper"服務(wù). 3, 禁用"Windows Search"服務(wù), 因?yàn)椴粫?huì)在這臺(tái)電腦上search太多. 4, 修改電源計(jì)劃為高性能模式,右擊開始按鈕,點(diǎn)擊“電源選項(xiàng)”→“其他電源選項(xiàng)”,將首選計(jì)劃修改為”高性能“。且將“性能和能量”項(xiàng)改為“最佳性能”。 5, 禁用Cortana, 搜索"gpedit.msc", 展開“計(jì)算機(jī)配置—管理模板—Windows 組件—搜索”, 找到“允許使用 Cortana”,右鍵選擇“編輯”, 需重啟電腦。 6, 禁用"Windows Update"服務(wù)。 7, 禁用OneDrive,搜索"gpedit.msc", 展開“計(jì)算機(jī)配置—管理模板—OneDrive"下列的一系列項(xiàng)。 8, 但那樣設(shè)置之后,發(fā)生有一個(gè)叫Antimalware的服務(wù)占用CPU與內(nèi)存都非常高,注冊(cè)表中禁用:計(jì)算機(jī)管理->管理模板->Windows組件 >Windows Defender防病毒->實(shí)時(shí)保護(hù)->不論何時(shí)啟用實(shí)時(shí)保護(hù),都會(huì)啟用進(jìn)程掃描。 這樣仍不生效,繼續(xù)禁用:計(jì)算機(jī)管理->管理模板->Windows組件 >Windows Defender防病毒->關(guān)閉Microsoft Defender防病毒|關(guān)閉例程更新。同時(shí)msconfig禁用與安全相關(guān)的服務(wù)以非microsoft的服務(wù)。但還是不行,最后以管理員運(yùn)行powershell然后運(yùn)行(REG ADD "hklm\software\policies\microsoft\windows defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f)解決,它相當(dāng)于在regedit下在HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows Defender路徑下添加了名為DisableAntiSpyware的DWORD32=1 9, win10設(shè)置系統(tǒng)默認(rèn)編碼為UTF-810, 打開Hyper-v, NFS, 虛擬機(jī)平臺(tái), 適用于Linux的Windows子系統(tǒng),容器,Telent客戶端,TFTP客戶端等7個(gè)特性,在設(shè)置的程序里添加這些特性即可。 11, win10打開遠(yuǎn)程桌面, Ubuntu上使用Remmina連接RDP桌面。配置Hyper-v
1, 新建虛擬交換機(jī)WAN(外部,連接第一塊網(wǎng)卡, 為避免失去RDP連接應(yīng)勾選允許管理操作系統(tǒng)共享此網(wǎng)絡(luò)配置器) 2, 新建虛擬交換機(jī)LAN(內(nèi)部,連接第二塊網(wǎng)卡, 為避免失去RDP連接應(yīng)勾選允許管理操作系統(tǒng)共享此網(wǎng)絡(luò)配置器), 此時(shí),win10的網(wǎng)絡(luò)連接中,會(huì)多出三個(gè)虛擬網(wǎng)卡:vEthernet (Default Switch),vEthernet (WAN)和vEthernet (LAN)。 3, img格式轉(zhuǎn)成vhdx格式(注:gz需先解壓)gunzip -d openwrt-gdq-v8-1[2021]-x86-64-generic-squashfs-uefi.img.gz
qemu-img convert openwrt-gdq-v8-1[2021]-x86-64-generic-squashfs-uefi.img -O vhdx -o subformat=dynamic router2021v8UEFI.vhdx
20210323更新 - 存儲(chǔ)的安裝
我們并不想使用黑群暉,只是想簡(jiǎn)單的將USB存儲(chǔ)掛進(jìn)win10或者OpenWrt虛機(jī)里然后通過rsync同步。
1, 若將USB存儲(chǔ)掛載到虛機(jī),需要先在win10下將該盤脫機(jī)。然后hyper-v里添加SCSI控制器就可以添加這塊脫機(jī)的硬盤了
但是將磁盤設(shè)置為offline之后,用下列命令active時(shí)卻報(bào):ACTIVE命令只能用于固定MBR磁盤
list partition select partiion X active但在設(shè)置的磁盤管理處在磁盤(而非右側(cè)的分區(qū))點(diǎn)右鍵點(diǎn)”聯(lián)機(jī)“就回來了。
2, 前提是win10能認(rèn)出這個(gè)USB存儲(chǔ),由于之前移動(dòng)硬盤用Ext4分區(qū)了,現(xiàn)在win10并不能掛載它。經(jīng)過試用,唯一靠譜的是一個(gè)收費(fèi)軟件,叫Paragon ExtFS,見: https://www.jianshu.com/p/c9aeed724fb3
3, 虛機(jī)添加了硬盤之后,若硬盤消失,虛機(jī)會(huì)啟動(dòng)失敗。
4, win10上能成功運(yùn)行的nfs server開源軟件只有haneWIN,但它和Paragon ExtFS不能結(jié)合,必須得將硬盤從Ext4轉(zhuǎn)回NTFS。
5, 但通過虛機(jī)用硬盤提供nfs后,在其他機(jī)器通過(sudo mount -t nfs 192.168.99.1:/mnt/sdb1 /mnt/win/sdb1)時(shí)報(bào)錯(cuò)"mount(2) system call failed: No error information"。
之后如果在http://192.168.99.1/cgi-bin/luci/admin/nas/nfs頁只mount /mnt會(huì)報(bào)下列錯(cuò),應(yīng)該mount /mnt/sdb1
mount.nfs: access denied by server while mounting 192.168.99.1:/mnt/sdb1且在使用rsync時(shí)對(duì)中文處理不友好(deleting doc/me/xxx/#344#273#262#350#243#201/), 網(wǎng)上說可以通過“rsync -avzPu --iconv=“GBK,UTF-8” --size-only”解決。
/usr/bin/rsync -avztur --progress --delete --exclude 'windisk' /mnt/nas /mnt/sdb1 /usr/bin/rsync -avztur --progress --delete --exclude 'windisk' admin@192.168.2.103:/share/HDA_DATA/Public/ /mnt/sdb16, 另外,通過虛機(jī)使用USB硬盤,在USB抽撥之后,openwrt中原sda變成sdb了,導(dǎo)致usb原來的sdb無法加載。所以似乎在虛機(jī)里使用容易插撥的USB存儲(chǔ)并不是一個(gè)好的選擇。
附 - win10上使用haneWIN
20210829更新:haneWIN速度只在太慢了(只有1M每秒),現(xiàn)在換成使用windows共享文件夾也就是samba的模式(速度大概在15M每秒 )
下面是 win10使用haneWIN的方法:
現(xiàn)在改用在win10上通過Paragon ExtFS + haneWIN (NFS Server)來提供共享存儲(chǔ)(ubuntu要想訪問需設(shè)置utf編碼):
下載(https://r.hanewin.net/nfs1258.exe)安裝后需以管理員打開(否則,配置項(xiàng)全是灰的)在設(shè)置一個(gè)exports (D:\ -alldirs -name:win_bak -public), 然后restart它即可, 它默認(rèn)使用的就是utf-8編碼。
ubuntu上用nfs client連接它:
在"高級(jí)安全Windows Defender防火墻打開了111,1058,2049三個(gè)端口,但仍然報(bào)錯(cuò)“mount.nfs: access denied by server while mounting”。原因是它不能從Paragon ExtFS讀取EXT4的文件,必須得將硬盤格式切換回NTFS啊。
NTFS盤掛載到ubuntu下遇到read-only問題:
sudo e2fsck /dev/sdd sudo hdparm -r0 /dev/sdd #close write-protected sudo ntfsfix /dev/sdd1 sudo mount -o rw /dev/sdd1 /media/hua/win/ sudo mount -o remount,rw /dev/sdd1 /media/hua/win/在http://192.168.99.1/cgi-bin/luci/admin/nas/nfs使用nfs client掛載時(shí)報(bào)missing錯(cuò)誤是因?yàn)檩斎肟蚶餂]有填東西(只是提示誤以為是默認(rèn)值)。掛載了3個(gè)目錄:
192.168.2.164:/win_bak/* -> /mnt/win_bak 192.168.2.164:/win_share/* -> /mnt/win_share 192.168.2.103:/Public -> /mnt/nas或?qū)⑸厦娴娜珓h除就能啟動(dòng)了,然后再編輯:
root@OpenWrt:~# cat /etc/config/nfs config mountoption enabled '1'option target '/mnt/win_bak'option options 'rw,nolock'option source 'win:/win_bak'option delay '1'config mountoption enabled '1'option target '/mnt/win_share'option options 'rw.nolock'option source 'win:/win_share'option delay '3'config mountoption enabled '1'option options 'rw,nolock'option delay '5'option source 'nas:/Public'option target '/nas'但此時(shí)又報(bào)下列錯(cuò), 解決這個(gè)問題的關(guān)鍵是在haneWIN中添加’-maproot:0’參數(shù)
root@OpenWrt:~# mkdir /mnt/win_bak/tmp mkdir: can't create directory '/mnt/win_bak/tmp': Permission denied同時(shí)安裝openssh, 在"setting -> application -> optional function"安裝openssh server即可.
ssh安裝好之后,可以使用基于ssh的tftp了,在"電腦->管理->用戶"中創(chuàng)建一個(gè)本地用戶,之后如何將用戶權(quán)限只限定在某個(gè)目錄呢?答案是編輯隱藏文件(在view菜單中顯示隱藏文件)(C:\ProgramData\ssh\sshd_config),同時(shí)要編輯這個(gè)文件先在這個(gè)文件的屬性中將權(quán)限改成可編輯,然后添加:
最后,在服務(wù)中重啟openssh即可,然后就可以通過tftp命令或者winscp來拷貝文件了.若要在外網(wǎng)訪問的話記得添加端口映射.
注意:我之前一直失敗,原因是將G\www\sftp寫錯(cuò)成了G:\www\tftp,非常難查.
20210323更新 - 裸機(jī)安裝
還有一個(gè)大問題是,在虛機(jī)里運(yùn)行OpenWrt時(shí),其他機(jī)器連接時(shí)經(jīng)常會(huì)從br-lan的dhcp拿不到IP,而人工設(shè)置了網(wǎng)絡(luò)又沒問題。這塊不是很穩(wěn)定。
第一級(jí)路由器(192.168.2.0/24)到第二級(jí)路由器(192.168.99.0/24):
# cat /etc/rc.local route add -net 192.168.99.0 netmask 255.255.255.0 gw 192.168.2.47 exit 0ssh設(shè)置:
mkdir ~/.ssh dropbearkey -t rsa -f ~/.ssh/id_rsa dropbearkey -y -f ~/.ssh/id_rsa |sed -n 2p > ~/.ssh/id_rsa.pub # https://community.onion.io/topic/2538/resolved-ssh-from-omega-to-linux-server-without-password/9 ln -s ~/.ssh/id_rsa ~/.ssh/id_dropbear chmod 700 ~/.ssh touch ~/.ssh/authorized_keys && chmod 644 ~/.ssh/authorized_keys ssh admin@192.168.2.103 "tee -a /root/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub #/usr/bin/rsync -avztur --progress --delete --exclude 'windisk' admin@192.168.2.103:/share/HDA_DATA/Public/ /mnt/sdb120210716 Update - sshfs + autofs + sshpass
cat << EOF | sudo tee /bak/bin/sshpass.sh #!/bin/bash sshpass -f /home/hua/.pwd ssh $* EOF chmod +x /bak/bin/sshpass.sh #sshfs -o password_stdin hua@win:G:\share /mnt/win <<< 'your pass' sshfs -o reconnect,allow_other,follow_symlinks,ssh_command='/bak/bin/sshpass.sh' hua@win:G:\share /mnt/win#autofs /mnt/win -fstype=fuse,port=22,reconnect,allow_other,follow_symlinks,ssh_command=/bak/bin/sshpass.sh :sshfs\#hua@win\:G:\share#/etc/fstab sshfs#hua@win:G:\share /mnt/win fuse ssh_command=/bak/bin/sshpass.sh 0 0 sudm mount -a總結(jié)
以上是生活随笔為你收集整理的Win 10 UEFI + Ubuntu 18.04 UEFI 双系统 (by quqi99)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker 精通之微服务
- 下一篇: java 判断数字变化增减_java S