日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Win 10 UEFI + Ubuntu 18.04 UEFI 双系统 (by quqi99)

發布時間:2023/12/20 Ubuntu 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Win 10 UEFI + Ubuntu 18.04 UEFI 双系统 (by quqi99) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

本人昨天買了一塊SSD, 結果后來發現原來這塊SSD存在硬件質量問題, 造成了軟件上的種種詭異問題, 如U盤時而識別時而不識別, 如觸摸屏左鍵時而抽風, 如ghost安裝win10時幾乎到100%的進度時忽然來一個無響應, 重啟系統后出現了"To interrupt normal start up, press the blue ThinkVantage button.", 此時鍵盤無反應, 既進不了系統, 也進不了BIOS. 撥CMOS電源也無效. 最后發現是這塊SSD有質量問題. 估計是SSD有控制器主要是軟件吧, 控制器軟件有bug導致運行ghost這種軟件時也能導致硬件掛住.
也正是因為這個問題吧, 七搞八搞, 一不小心在重試的過程中將之前的一塊linux分區誤刪了, 于是之前打算的遷移雙系統的想法泡湯(當然, 那些通過分區助手或者ghost來遷移分區的網上文章照著做沒一個是成功的).
這樣, 有機會事隔多年再一次重裝雙系統的機會, 但是發現世道變了, 之前百試不爽的方法現在行不通了. 后經查證, 主要原因是ubuntu 18.04開始默認采用UEFI, 而win10默認仍然是MBR. 這樣會導致一系列的問題, 如報錯: grub-efi-amd64-signed failed to install 18.04, 統一采用UEFI安裝.

BIOS設置

在BIOS中將Boot Mode設置為UEFI Only, 如果有Secure Boot選項還要disable它(不做這一步可能會造成按F12鍵之后無法找到U盤)
注: 改成UEFI only之后, 運行雙系統, 四系統都沒問題, 但后來進不了U盤的livecd, 報: couldn’t get UEFI db list, 所以只得改回Both, 但UEFI優先.

安裝win10

  • 下載大白菜UEFI專版 - http://www.bigbaicai.com/download.html?down2 (20210321更新,注:目前已沒有UEFI專版,下載普通版即可。使用大白菜一般只能通過ghost iso安裝,選擇msdn iso原版時總是說無法選擇iso,原版iso可以通過ultraiso寫入usb即可。當然大白菜也提供了PE工具箱)
  • 下載win10 ghost - axel -n 10 http://xz.win10cjb.com/18.5/win10_64/DEEP_Win10x64_201805.rar
  • 制作大白菜啟動U盤, 如果界面上有UEFI字眼就點上(不記得了, 有就點上), 還要注意一點, 記得點里面的格式轉換, 將FAT32格式(HDD-FAT32)轉換成NTFS(HDD-NTFS)轉換, 否則HDD-FAT32格式不能拷貝大于4G的ghost文件哦,
  • 按F12選U盤啟動進入大白菜后, 用DiskGenius工具重新分區, 必須將BIOS+MBR格式轉UEFI+GPT格式. 分區表格式為GUID而不是MBR, window上管EFI分區叫ESP/MSR分區
  • 注意, 不要修改推薦的卷標, 這個卷就是指向的ESP/MSR分區.

安裝win10后

安裝win10后需要將禁用掉快速啟動, 否則會造成按F12無法選擇U盤啟動. 菜單路徑為: “設置 -> 系統 -> 電源與睡眠 -> 其他電源設置 -> 選擇電源按鈕的功能 -> 更改當前不可用的設置 -> 啟動快速啟動”

安裝ubuntu 18.04

像安裝win10一樣, 一樣要注意重要一點, 需創建大概300M左右的UEF分區, 另外, 還可以創建一個根分區和一個備份文件用的bak分區.
注意, windows非常霸道, 它是總修改bios里的啟動順序, 將它的"Windows boot Manager"放在"ubuntu grub"的前面, 可以在bios里鎖定啟動順序

安裝win7

win7若沒有sata的驅動, 所以得先改回IDE, 裝完win7之后再改回AHCI, 否則也容易掛在啟動界面不動了.
注: 我未遇到以上問題, 可能因為我裝的win7并不是原版的, 已經帶了sata驅動

加裝SSD

如果加裝了SSD之后呢? 那得注意:

  • 裝win10時同樣需要進大白菜或老毛桃后用DiskGenius在SSD上劃分ESP/MSR分區
  • 裝ubuntu時, 分區處也要創建EFI分區, 同時grub設置安裝在SSD上, 相當于: grub-install /dev/sdX.
  • bios里選擇哪塊硬盤啟動. 其實在SSD上安裝grub后, 這個grub會連HDD上原先的win10與ubuntu一起放在啟動列表里. 注意, windows非常霸道, 它是總修改bios里的啟動順序, 將它的"Windows boot Manager"放在"ubuntu grub"的前面, 可以在bios里鎖定啟動順序
  • 有時候需要對ssd優化, 例如不要將swap分區放在ssd以延長壽命, 如更改i/o調度策略為noop, 如使用bcache

問題

裝完之后進入win10發現thinkpad小紅點左鍵失靈, 再切換進ubuntu發現小紅點左鍵正常(實際上, 5次大概有一次有問題, 只是登錄界面左鍵與右鍵似乎混亂了, 登錄之后就正常了. 再換PE進系統發現小紅點左鍵依然有問題. 所以基本斷定和硬件沒有關系, 應該是win10上的小紅點驅動有問題.
但搜索了很多帖子, 沒一個能解決問題的, 聯想的小紅點win10驅動做得太爛了. 所以決定回到win7, 回到win7之后該問題解決. 另外, PE回到win7的過程中不會傷害之前SSD上安裝的ubuntu系統, 也不會傷害原HDD里的雙系統.

數據遷移

現在在筆記本x220t上裝了win10, 也裝了ubuntu 18.04, 但是如何將工作機t440p的根分區遷移到x220t的根分區呢? 因為我們已經在x220t上安裝了ubuntu 18.04, 這樣省去了采用命令劃分EFI分區, 以及最后填充EFI分區的步驟. 現在將精力集中在如何快速遷移根分區上.

  • 目的機x220t因為有寫操作, 故要以livecd啟動, 啟動ssh server, 并將根分區加載到/mnt
sudo -i apt install openssh-server passwd echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config service ssh restart fdisk -l mount /dev/sdb4 /mnt# backup 3 files /mnt/boot/grub/grub.cfg /mnt/etc/hostname /mnt/etc/fstab
  • 源機t440p只有讀操作故不需要以livecd啟動. 但如果以livecd啟動的話, 未加載根分區所依賴的分區如/bak分區, 此時如果又沒掛載/bak分區的話, rsync命令遷移一些指向/bak分區的軟鏈時會報錯退出. 人工刪除該軟鏈重新運行即可. 且需要注意 rsync命令中的/mnt/后應該有/, 否則會將mnt目錄遷移到根分區的mnt目錄下.
sudo -i fdisk -l mount /dev/sda9 /mnt# rsync will now copy all files, directories, permissions and owners over to the destination machine. # It also skips all files and directories that are not on the root filesystem, like /dev/, /sys/, /proc/. # If there are filesystems that are mounted separately on the source machine and your want those copied too, use rsync again on those mountpoints too. # NOT USE livecd rsync -xavP --numeric-ids --exclude='/nas' --exclude='/bak' --exclude='/tmp' --exclude='/EFI' --exclude='/media' --exclude='/mnt' / root@192.168.99.128:/mnt/ # USE livecd, use '/mnt/ rsync -xavP --numeric-ids --exclude='tmp' / root@192.168.99.128:/mnt/ rsync -xavP --numeric-ids --exclude='/nas' --exclude='/bak' --exclude='/tmp' --exclude='/EFI' --exclude='/media' --exclude='/mnt' /mnt/ root@192.168.99.128:/mnt/# then restore above 3 files /mnt/boot/grub/grub.cfg /mnt/etc/hostname /mnt/etc/fstab
  • 可選, 如果之前沒有備份/mnt/boot/grub/grub.cfg, 這時也可以重新生成. 更新grub, 此時會報"canot find EFI directory", 這樣會導致這時生成grub時無法找到原HDD中的雙系統, 不要緊, 只要找到目前SSD中的雙系統即可. 呆會下一步再運行一下grub命令即可解決
mount /dev/sdb8 /mnts for d in dev sys proc; do mount --bind /$d /mnt/$d; done chroot /mnt/ grub-install /dev/sdb # canot find EFI directory chroot /mnt/ update-grub
  • 可選, 如果之前沒有備份/mnt/etc/fstab, 這時也可以重新生成. 修復fstab, 之前運行上述遷移命令前忘了備份x220t上的fstab系統, 導致它被覆蓋, OK, 我們修復它.
blkid e2label /dev/sdb8 "ROOT_SSD" tee "/mnt/etc/fstab" <<EOF #UUID can be found via blkid command #LABEL=boot /boot ext2 sync 0 2 #UUID=735b3be3-779c-4d21-a944-b033225f3ab4 none swap sw 0 0 #LABEL=SWAP none swap sw 0 0 UUID=9401-D2EA /boot/efi vfat defaults 0 2 LABEL=ROOT_SSD / ext4 errors=remount-ro 0 1 EOF
  • 這時重啟系統, 就可以以grub選擇啟動SSD上的雙系統了, 如果還想把HDD的原有的雙系統也加到grub的話, 那進ubuntu系統后再執行一次update-grub命令即可.
  • 這種遷移方式效果非常好, 一個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#其他, 測試虛機中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

兩個參數:

  • sequential_cutoff默認為4k, 就是大于4k的就是繞開NVME直接往HDD寫, 為0就是disable這個特性。所以這個要設置為0, 不然IO性能會很差。
  • 另外bcache的cache_available_percent(/sys/block/bcache0/bcache/cache/cache_available_percent)來看bacache的ssd/cache是不是被寫滿了,被寫滿了IO(沒寫時是100,降到30就差不多快滿了)會直接寫backing HDD,這樣IO會很慢。
while true; do echo `date`; cat /sys/block/bcache0/bcache/cache/cache_available_percent; cat /sys/block/bcache0/bcache/dirty_data; cat /sys/block/bcache0/bcache/writeback_rate; sleep 5; done; #!/bin/sh # comes dongdong's patch - https://lkml.org/lkml/2021/1/8/110 while true; do echo "`date +%s`, `cat /sys/block/bcache0/bcache/dirty_data`, `cat /sys/block/bcache0/bcache/cache/cache_available_percent`, `cat /sys/block/bcache0/bcache/writeback_rate`" >> $1; sleep 5; done;

恢復bak分區

bak分區存放數據, 由bcache加速

rsync -xavP --numeric-ids --exclude='images' /bak/ root@192.168.99.128:/bak/

調整分區

一個分區不夠用時, 可以使用gpartd合并相鄰的空閑分區.注意一點, 要合并的分區必須是umount狀態時才能合并.

SSD優化

# 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: PASSED

20200808更新

為什么新電腦think x1 yoga這次又要安裝雙系統,那是因為win10上的cmder似乎丟失鍵盤按鍵, 見:https://github.com/cmderdev/cmder/issues/258
與: https://blog.csdn.net/quqi99/article/details/105598417
需關閉win10上的硬盤加密功能:

manage-bde -status manage-bde -? manage-bde -off c: manage-bde -off d:

另外,用ubuntu上的Startup Disk Creation創建u盤啟動盤時總不好使,后來證明是U盤質量問題.
目前ubuntu 20.4還遇到一個尚未解決的問題,鎖屏時敲密碼hang在那兒,日志似乎是:

Aug 8 18:34:03 x1 gsd-power[2533]: Error setting property 'PowerSaveMode' on interface org.gnome.Mutter.DisplayConfig: Timeout was reached (g-io-error-quark, 24)

20210321更新 - 安裝工控機

今天買了一個典籍的工控機,安裝win10時遇到如下問題:

  • 正常情況是按F2進BIOS
  • 但使用大白菜通過Ghost安裝一個win10之后,無法進入BIOS
  • 在win10中禁用快速啟動后仍然無法進入BIOS
  • 原來典籍現在默認的是UEFI而不是BIOS,win10對BIOS和UEFI都做了手腳,對于BIOS是禁用快速啟動可按F2進BIOS,但對于win10是啟動win10后再按shift不動再點擊restart,這樣再進入UEFI (也可在啟動win10后在setting中搜索UEFI進入)。那問題來了,BIOS是可以設置來電啟動的,現在使用UEFI如何設置此功能呢?
  • 如果刪除win10之后,就再也沒有鍵進入UEFI了,這時可以使用F11來選擇usb或者進入UEFI
  • 從msdn下載的iso不是ghost,可通過UltraISO寫入U盤中。密鑰可通過skms + slmgr注冊. 我們這里使用原版的iso (只是通過大白菜分區了)
  • 但是在安裝win10選擇分區時,報:windows canot be installed to this disk, the selected disk is of the GPT partiton style, 也許是因為用大白菜分區為GPT的原因嗎?
  • 于是進UEFI將改成’UEFI only",但這會造成無法識別啟動U盤,只好將"Boot option filter"又改回"UEFI and Legacy",但只是將Storage改為’UEFI only", 但問題依舊。
  • 然后在win10分區的界面按"shift + f10", 輸入diskpart, 然后再輸入’list disk’, ‘select disk 0’, ‘clean’, 'convert mbr’這樣會將之前大白菜建的GPT分區全部刪除再轉化成MBR分區。
  • 這樣就用msdn原版iso安裝win10成功了。
  • 區域設置成US,這樣microsoft store不會閃退(還不能用的話可以reset, 右鍵點擊開始按鈕>運行>輸入wsreset回車,等待彈出的黑色窗口消失后自動打開Microsoft Store再進行使用),同時也可以安裝Your Phone
  • 重置網絡 - netsh int ip reset && netsh winsock reset
  • hyper-v下安裝android-x86或Bliss OS(更好), 它不是anroid模擬器,而是基于x86的android

20210322更新 - Surface Pro3如何進入USB啟動盤

對于Surface Pro3進入UEFI的方法是,關機,插USB啟動盤,按住音量+鍵再按電源鍵,看到UEFI界面后松音量鍵,在UEFI中關閉可信計算,將啟動順序設置成"USB -> SSD",這樣再Exit UEFI重啟即可進入USB啟動盤。但是實測:

  • 大白菜制作的PE + Ghost啟動盤可以進入PE (UEFI格式)
  • UltraISO制作的MSDN ISO啟動盤無法進入 (MBR格式)
    原因是UltraISO制作的是MBR格式,改為微軟官方的MediaCreationTool20H2工具制作usb啟動盤就OK了(不需要事先下載鏡像,它會通過網絡自動下載,速度還可以)。
    要將win10 1909升級到2004的話,直接點擊usb啟動盤或者ISO中中的setup.exe自動升級,升級要注意一點,之前的安裝就應該采用中文版的,現在usb里也得是中文版,這樣升級之前個人數據和應用數據才不會丟。否則,語言不同只能將個人數據留下來。
    使用MediaCreationTool20H2是不需要事先下載ISO的,當然如果一定要下載,下面有一個迅雷的鏈接,是win10 2004版 (包括home, pro等):
ed2k://|file|cn_windows_10_consumer_editions_version_2004_updated_may_2020_x64_dvd_5a83cf4e.iso|5260658688|7B09EFFC08DD0FBF1D8A5558DA8445F5|/ 有時候用PE工具制USB啟動盤(當然這種方式是不需要的)使用NTFS模式是為了避免拷貝大于4G的ISO文件,ISO文件如果采用解壓再拷貝的話可以解除這個限制,直接使用FAT32格式。

優化win10

1, 關閉安全,搜索"defen"打開windows安全中心,點"病毒與防護->管理設置"關閉所有的安全選項。然后搜索"services.msc"禁用"Security Center"服務。 2, 關閉IPv6, 禁用"IPHelper"服務. 3, 禁用"Windows Search"服務, 因為不會在這臺電腦上search太多. 4, 修改電源計劃為高性能模式,右擊開始按鈕,點擊“電源選項”→“其他電源選項”,將首選計劃修改為”高性能“。且將“性能和能量”項改為“最佳性能”。 5, 禁用Cortana, 搜索"gpedit.msc", 展開“計算機配置—管理模板—Windows 組件—搜索”, 找到“允許使用 Cortana”,右鍵選擇“編輯”, 需重啟電腦。 6, 禁用"Windows Update"服務。 7, 禁用OneDrive,搜索"gpedit.msc", 展開“計算機配置—管理模板—OneDrive"下列的一系列項。 8, 但那樣設置之后,發生有一個叫Antimalware的服務占用CPU與內存都非常高,注冊表中禁用:計算機管理->管理模板->Windows組件 >Windows Defender防病毒->實時保護->不論何時啟用實時保護,都會啟用進程掃描。 這樣仍不生效,繼續禁用:計算機管理->管理模板->Windows組件 >Windows Defender防病毒->關閉Microsoft Defender防病毒|關閉例程更新。同時msconfig禁用與安全相關的服務以非microsoft的服務。但還是不行,最后以管理員運行powershell然后運行(REG ADD "hklm\software\policies\microsoft\windows defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f)解決,它相當于在regedit下在HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows Defender路徑下添加了名為DisableAntiSpyware的DWORD32=1 9, win10設置系統默認編碼為UTF-810, 打開Hyper-v, NFS, 虛擬機平臺, 適用于Linux的Windows子系統,容器,Telent客戶端,TFTP客戶端等7個特性,在設置的程序里添加這些特性即可。 11, win10打開遠程桌面, Ubuntu上使用Remmina連接RDP桌面。

配置Hyper-v

1, 新建虛擬交換機WAN(外部,連接第一塊網卡, 為避免失去RDP連接應勾選允許管理操作系統共享此網絡配置器) 2, 新建虛擬交換機LAN(內部,連接第二塊網卡, 為避免失去RDP連接應勾選允許管理操作系統共享此網絡配置器), 此時,win10的網絡連接中,會多出三個虛擬網卡:vEthernet (Default Switch),vEthernet (WAN)和vEthernet (LAN)。 3, img格式轉成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

3, 新建虛機eSirLEDE, 第二代(下載的是EFI固件),1024M內存,使用existing eSirLEDE.vhd, 注:此時暫時不選擇網絡 4, 設置網絡,先添加WAN再添加LAN, 順序很重要,這樣,WAN名為eth0,LAN名為eth1 5, 設置虛機,在安全性tab中取消“啟用安全啟動”(默認就是取消的),并設置始終自動啟動此虛擬機。 6, 啟動虛機后,編輯(vi etc/config/network)調整wan/lan與eth0/eth1的關系(將lan處的網絡改成eth1, wan處的網卡改成eth0),修改lan的IP為:192.168.99.1, 然后用passwd root設置密碼。 7, 敲入reboot重啟虛機后,虛機里面的br-lan的IP將為192.168.99.1(它連的是eth1). 將電腦連向這第二塊網卡(eth0)設置一個IP之后就可以進GUI界面去設置了

20210323更新 - 存儲的安裝

我們并不想使用黑群暉,只是想簡單的將USB存儲掛進win10或者OpenWrt虛機里然后通過rsync同步。
1, 若將USB存儲掛載到虛機,需要先在win10下將該盤脫機。然后hyper-v里添加SCSI控制器就可以添加這塊脫機的硬盤了

diskpart list disk select disk 1 offline disk #list partition #select partiion X #active

但是將磁盤設置為offline之后,用下列命令active時卻報:ACTIVE命令只能用于固定MBR磁盤

list partition select partiion X active

但在設置的磁盤管理處在磁盤(而非右側的分區)點右鍵點”聯機“就回來了。
2, 前提是win10能認出這個USB存儲,由于之前移動硬盤用Ext4分區了,現在win10并不能掛載它。經過試用,唯一靠譜的是一個收費軟件,叫Paragon ExtFS,見: https://www.jianshu.com/p/c9aeed724fb3
3, 虛機添加了硬盤之后,若硬盤消失,虛機會啟動失敗。
4, win10上能成功運行的nfs server開源軟件只有haneWIN,但它和Paragon ExtFS不能結合,必須得將硬盤從Ext4轉回NTFS。
5, 但通過虛機用硬盤提供nfs后,在其他機器通過(sudo mount -t nfs 192.168.99.1:/mnt/sdb1 /mnt/win/sdb1)時報錯"mount(2) system call failed: No error information"。

mount(2) system call failed: No error information. fsck.ext4 -y /dev/sdb2

之后如果在http://192.168.99.1/cgi-bin/luci/admin/nas/nfs頁只mount /mnt會報下列錯,應該mount /mnt/sdb1

mount.nfs: access denied by server while mounting 192.168.99.1:/mnt/sdb1

且在使用rsync時對中文處理不友好(deleting doc/me/xxx/#344#273#262#350#243#201/), 網上說可以通過“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/sdb1

6, 另外,通過虛機使用USB硬盤,在USB抽撥之后,openwrt中原sda變成sdb了,導致usb原來的sdb無法加載。所以似乎在虛機里使用容易插撥的USB存儲并不是一個好的選擇。

附 - win10上使用haneWIN
20210829更新:haneWIN速度只在太慢了(只有1M每秒),現在換成使用windows共享文件夾也就是samba的模式(速度大概在15M每秒 )

# 在win10中在“電腦->管理->用戶”創建一個名為nfs的本地用戶,然后在要創建共享文件夾的目錄上點擊右鍵創建共享文件夾 # use share file instead of hanewin, hanewin is too slow ( fuser -k /mnt/win_share/ && umount /mnt/win_share ) # sudo mount -t cifs -o username=nfs,password=password //win/win_share /mnt/tmp/ #/mnt/win_share -fstype=cifs,rw,username=nfs,password=password,vers=1.0,file_mode=0777,dir_mode=0777 ://win/win_share /mnt/win_share -fstype=cifs,rw,username=nfs,password=password,file_mode=0777,dir_mode=0777 ://win/win_share /mnt/win_bak -fstype=cifs,rw,username=nfs,password=password,file_mode=0777,dir_mode=0777 ://win/win_bak

下面是 win10使用haneWIN的方法:
現在改用在win10上通過Paragon ExtFS + haneWIN (NFS Server)來提供共享存儲(ubuntu要想訪問需設置utf編碼):
下載(https://r.hanewin.net/nfs1258.exe)安裝后需以管理員打開(否則,配置項全是灰的)在設置一個exports (D:\ -alldirs -name:win_bak -public), 然后restart它即可, 它默認使用的就是utf-8編碼。
ubuntu上用nfs client連接它:

D:\ -alldirs -name:win_bak -public -maproot:0 G:\ -alldirs -name:win_share -public -maproot:0 showmount -e 192.168.2.164 sudo mount -t nfs win:/win_bak /mnt/win_bak -o vers=3 -o nolock sudo mount -t nfs win:/win_share /mnt/win_share -o vers=3 -o nolock

在"高級安全Windows Defender防火墻打開了111,1058,2049三個端口,但仍然報錯“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掛載時報missing錯誤是因為輸入框里沒有填東西(只是提示誤以為是默認值)。掛載了3個目錄:

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

或將上面的全刪除就能啟動了,然后再編輯:

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'
  • 數據統一從nas進,在路由器上將nas往win_bak里通過rsync同步 ( rsync -avztur --progress --delete --exclude ‘.Trash-1000’ /mnt/nas/ /mnt/win_bak , 可以先不帶–delete測試)
  • win_share在所有機器中共享,方便同步數據
  • 但此時又報下列錯, 解決這個問題的關鍵是在haneWIN中添加’-maproot:0’參數

    root@OpenWrt:~# mkdir /mnt/win_bak/tmp mkdir: can't create directory '/mnt/win_bak/tmp': Permission denied

    同時安裝openssh, 在"setting -> application -> optional function"安裝openssh server即可.
    ssh安裝好之后,可以使用基于ssh的tftp了,在"電腦->管理->用戶"中創建一個本地用戶,之后如何將用戶權限只限定在某個目錄呢?答案是編輯隱藏文件(在view菜單中顯示隱藏文件)(C:\ProgramData\ssh\sshd_config),同時要編輯這個文件先在這個文件的屬性中將權限改成可編輯,然后添加:

    Subsystem sftp sftp-server.exe internal-sftp ... Match User ftpuserChrootDirectory G:\www\sftp# Disable tunneling, authentication agent, TCP and X11 forwarding.AllowAgentForwarding noAllowTcpForwarding noX11Forwarding noPermitTTY noPermitTunnel noForceCommand internal-sftp

    最后,在服務中重啟openssh即可,然后就可以通過tftp命令或者winscp來拷貝文件了.若要在外網訪問的話記得添加端口映射.
    注意:我之前一直失敗,原因是將G\www\sftp寫錯成了G:\www\tftp,非常難查.

    20210323更新 - 裸機安裝

    還有一個大問題是,在虛機里運行OpenWrt時,其他機器連接時經常會從br-lan的dhcp拿不到IP,而人工設置了網絡又沒問題。這塊不是很穩定。

  • 將OpenWRT直接安裝裸機的方法,即需要將img的raw格式寫到SSD(DiskImage GUI或physdiskwrite CLI - physdiskwrite -u xx.img均能寫盤),將DiskImage和img拷到PE盤上,啟動PE后直接打開DiskImage選擇img寫到SSD即可。我們使用physdiskwrite,寫前用PE先將SSD的分區都刪了,記住不要新建分區,直接cmd去raw鏡像目錄運行‘physdiskwrite -u xx.img’, 選0分區(即ssd分區),再按y寫鏡像即可。注意:如果bios(對于zero工控機是按Delete鍵進bios)里如果設置的是UEFI only即必須使用UEFI鏡像,否則系統會反復重啟。裝完之后,進系統設置/etc/config/network即可(參考下面的)。
  • 然后就是設置/etc/config/network了,如果有多個網卡可以都放到br-lan里
  • config interface 'lan'option type 'bridge'option proto 'static'option netmask '255.255.255.0'option _orig_ifname 'eth0'option _orig_bridge 'true'option ifname 'eth0 eth1 eth2 eth3 eth4'option ipaddr '192.168.99.1'option ip6assign '64' config interface 'wan'option proto 'dhcp'option _orig_ifname 'eth1'option _orig_bridge 'false'option ifname 'eth5'

    第一級路由器(192.168.2.0/24)到第二級路由器(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 0

    ssh設置:

    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/sdb1

    20210716 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

    總結

    以上是生活随笔為你收集整理的Win 10 UEFI + Ubuntu 18.04 UEFI 双系统 (by quqi99)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美巨大另类极品videosbest | 久久久久亚洲av片无码 | 欧美香蕉视频 | 国产色a | 中文字幕在线视频第一页 | 欧美色欧美色 | 帮我拍拍漫画全集免费观看 | 黑人精品无码一区二区三区 | 操穴影院| 国产精品免费一区二区三区都可以 | 国产又黄又猛又粗又爽 | jlzzjizz在线播放观看 | 欧美黄网站在线观看 | 日本wwwxx| 天天国产视频 | 免费观看在线播放 | 亚洲黄网站在线观看 | 欧美伦理影院 | 国产亚洲av综合人人澡精品 | 天天干天天日夜夜操 | v天堂在线观看 | 欧美日韩国产网站 | 快播91 | 伊人网视频在线 | 91蜜臀精品国产自偷在线 | 国产专区在线播放 | 亚洲精品丝袜 | 激情视频亚洲 | 超碰成人av | 综合久久综合久久 | 韩国精品视频在线观看 | 五月婷婷视频在线 | 亚洲性色av | 免费的黄色小视频 | 久久久无码18禁高潮喷水 | 久色成人网 | 色91视频| 91久久精品夜夜躁日日躁欧美 | 国产95在线 | 亚洲欧洲久久久 | 黄色片女人| 欧美三级一区二区 | 天天曰夜夜操 | 2019中文字幕在线观看 | 欧美高清hd19| 剧情av在线 | 久久久久a | 亚洲福利视频导航 | 色视频免费观看 | 欧美日韩一卡二卡三卡 | 精品一区二区久久久 | 自拍偷拍第八页 | 麻豆精品免费视频 | 日出白浆视频 | 日韩欧美aaa | 欧美bbbbbbbbbbbb18av| 日本欧美一区 | 成人区精品一区二区婷婷 | 欧美激情一区二区三区在线 | 91老肥熟| 伊人春色影院 | 领导揉我胸亲奶揉下面 | 一本色道久久综合亚洲精品酒店 | 无码人妻丰满熟妇区五十路百度 | 亚洲天堂一区二区在线 | 欧美成人三级在线观看 | 国产伦精品一区二区三区免费迷 | 色多多在线视频 | 欧美在线黄色 | 久久久久亚洲av无码网站 | 2021狠狠干 | 国产xxxxx | 精品无码久久久久成人漫画 | 欧美精品一卡 | www.av视频在线观看 | 蜜桃视频一区二区 | 哪个网站可以看毛片 | 成人av网站大全 | 总裁憋尿呻吟双腿大开憋尿 | 中文字幕中文字幕 | 日本一区二区三区免费在线观看 | 亚洲综合色在线观看 | 国产九色| 欧美一区二区三区四区在线观看 | 三上悠亚在线观看一区二区 | 日韩av不卡一区二区 | 国产乱淫av| 噜噜吧噜噜色 | 在线视频导航 | 一区二区三区小视频 | 亚洲www在线观看 | 人妖被c到高潮欧美gay | 67194av| 亚洲成人999| 女性裸体瑜伽无遮挡 | 国产富婆一区二区三区 | 久久久精品人妻一区二区三区四 | wwwav在线播放 | 国产精品日韩av |