{"id":1094,"date":"2021-01-27T09:41:58","date_gmt":"2021-01-27T01:41:58","guid":{"rendered":"http:\/\/www.max-shu.com\/blog\/?p=1094"},"modified":"2021-01-27T09:41:58","modified_gmt":"2021-01-27T01:41:58","slug":"windows%e4%b8%8b%e5%ae%89%e8%a3%85qemu%e5%b9%b6%e5%9c%a8qemu%e4%b8%8a%e5%ae%89%e8%a3%85ubuntu%e5%92%8cdebian","status":"publish","type":"post","link":"http:\/\/www.max-shu.com\/blog\/?p=1094","title":{"rendered":"Windows\u4e0b\u5b89\u88c5QEMU\u5e76\u5728qemu\u4e0a\u5b89\u88c5ubuntu\u548cdebian"},"content":{"rendered":"<h2><strong>\u5b89\u88c5qemu\uff1a<\/strong><\/h2>\n<div>\u4e0b\u8f7dqemu-w64-setup-20201124.exe\uff0c\u5b89\u88c5\u540e\u8bbe\u7f6e\u597d\u73af\u5883\u53d8\u91cf\u3002<\/div>\n<div><\/div>\n<h2><span>\u5b89\u88c5Debian\uff1a<\/span><\/h2>\n<div><b>\u4e0b\u8f7d\uff1a<\/b><\/div>\n<div><a href=\"http:\/\/mirrors.163.com\/debian\/dists\/Debian9.13\/main\/installer-arm64\/current\/images\/netboot\/debian-installer\/arm64\/initrd.gz\">http:\/\/mirrors.163.com\/debian\/dists\/Debian9.13\/main\/installer-arm64\/current\/images\/netboot\/debian-installer\/arm64\/initrd.gz<\/a><\/div>\n<div><a href=\"http:\/\/mirrors.163.com\/debian\/dists\/Debian9.13\/main\/installer-arm64\/current\/images\/netboot\/debian-installer\/arm64\/linux\">http:\/\/mirrors.163.com\/debian\/dists\/Debian9.13\/main\/installer-arm64\/current\/images\/netboot\/debian-installer\/arm64\/linux<\/a><\/div>\n<div><\/div>\n<div><b>\u5efa\u7acb\u78c1\u76d8\uff1a<\/b><\/div>\n<div>DOS&gt; cd F:\\QEMU_DATA\\Debian9.13\\<\/div>\n<div>DOS&gt; F:<\/div>\n<div>DOS&gt; qemu-img.exe create F:\\QEMU_DATA\\Debian9.13\\arm64.img 20G<\/div>\n<div><\/div>\n<div><b>\u542f\u52a8qemu\u6765\u5b89\u88c5debian\uff1a<\/b><\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -kernel linux -initrd initrd.gz -hda arm64.img -m 2048 -append &#8220;root=\/dev\/vda1&#8221;<\/div>\n<div>\u4eceQEMU\u7a97\u53e3\u7684View\u83dc\u5355\u9009\u62e9serial0\u4f5c\u4e3a\u8f93\u51fatty\u3002<\/div>\n<div>\u7136\u540e\u5c31\u50cf\u6b63\u5e38\u5b89\u88c5debian\u4e00\u6837\u4e00\u6b65\u4e00\u6b65\u9009\u62e9\u5b89\u88c5\u5373\u53ef\uff08\u9009\u955c\u50cf\u65f6\u9009\u62e9\u56fd\u5185\u955c\u50cf\uff09\u3002<\/div>\n<div>\u5b89\u88c5\u5b8c\u6210\u6309\u63d0\u793a\u91cd\u542f\uff0c\u53c8\u4f1a\u8fdb\u5165\u5b89\u88c5\u72b6\u6001\u9009\u62e9\u8bed\u8a00\u7684\u754c\u9762\uff0c\u8fd9\u4e2a\u65f6\u5019\u4e0d\u8981\u518d\u5b89\u88c5\u4e86\uff0c\u76f4\u63a5DOS\u7a97\u53e3\u91cc\u9762ctrl+c\u9000\u51faqemu\uff0c\u7136\u540e\u53c2\u8003\u540e\u9762\u7684\u201c\u6b63\u5e38\u542f\u52a8\u201d\u6b65\u9aa4\u3002<\/div>\n<div><\/div>\n<div>\u901a\u8fc7VNC\u8fde\u63a5\u6765\u5b89\u88c5\uff1a<\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -vnc 0.0.0.0:1 -monitor stdio -kernel linux -initrd initrd.gz -hda arm64.img -m 2048 -append &#8220;root=\/dev\/vda1&#8221;<\/div>\n<div>\u4e4b\u540e\u4f7f\u7528vnc\u8fde\u63a5\u5230\u4e3b\u673a\u768459001\u7aef\u53e3\uff0c\u4e00\u6837\u53ef\u4ee5\u5b89\u88c5\u3002<\/div>\n<div><\/div>\n<div><b>\u6b63\u5e38\u542f\u52a8\uff08<span>windows\u6ca1\u6709\u514d\u8d39\u597d\u7528\u7684\u89e3\u538bimg\u6587\u4ef6\u7684\u5de5\u5177\uff0c\u9700\u8981\u632a\u5230linux\u4e0b\u64cd\u4f5c\u628ainitrd.img\u548cvmlinuz\u53d6\u51fa\u6765<\/span>\uff09\uff1a<\/b><\/div>\n<div>\u628a\u521a\u624d\u5b89\u88c5\u5b8c\u540e\u751f\u6210\u7684arm64.img\u62f7\u8d1d\u5230Linux\u673a\u5668\u4e0a\u3002<\/div>\n<div><span># parted arm64.img<\/span><\/div>\n<div>(parted) <span>unit\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/div>\n<div>Unit?\u00a0\u00a0[compact]? <span>B\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/div>\n<div>(parted) <span>print\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/div>\n<div>Model:\u00a0\u00a0(file)<\/div>\n<div>Disk \/extended\/disk6\/android16\/arm64.img: 21474836480B<\/div>\n<div>Sector size (logical\/physical): 512B\/512B<\/div>\n<div>Partition Table: gpt<\/div>\n<div>Disk Flags:<\/div>\n<div>Number\u00a0\u00a0Start\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0End\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Size\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0File system\u00a0\u00a0\u00a0\u00a0\u00a0Name\u00a0\u00a0Flags<\/div>\n<div>1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span>1048576B\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>255852543B\u00a0\u00a0\u00a0\u00a0254803968B\u00a0\u00a0\u00a0\u00a0ext2<\/div>\n<div>2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0255852544B\u00a0\u00a0\u00a0\u00a019425918975B\u00a0\u00a019170066432B\u00a0\u00a0ext4<\/div>\n<div>3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a019425918976B\u00a0\u00a021473787903B\u00a0\u00a02047868928B\u00a0\u00a0\u00a0linux-swap(v1)<\/div>\n<div>(parted) <span>quit<\/span><\/div>\n<div><span style=\"color: #ff0000;\"># mkdir bbb<\/span><\/div>\n<div><span><span style=\"color: #ff0000;\"># mount -o loop,offset=<\/span>1048576 <span style=\"color: #ff0000;\">arm64.img bbb<\/span><\/span><\/div>\n<div>\u7136\u540e\u628abbb\u76ee\u5f55\u4e0b\u7684initrd.img-4.9.0-14-arm64\u548cvmlinuz-4.9.0-14-arm64\u62f7\u8d1d\u56dewindows\u673a\u5668\u548carm64.img\u76f8\u540c\u76ee\u5f55\u4e0b\uff0c\u518d\u6267\u884c\uff1a<\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -kernel\u00a0vmlinuz-4.9.0-14-arm64 -initrd\u00a0initrd.img-4.9.0-14-arm64 -hda arm64.img -m 2048 -append &#8220;root=\/dev\/vda<span>2<\/span>&#8220;<\/div>\n<div><\/div>\n<div>\u540c\u6837\u53ef\u4ee5\u901a\u8fc7VNC\u8fde\u63a5\u6765\u6b63\u5e38\u542f\u52a8\uff1a<\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -vnc 0.0.0.0:1 -monitor stdio -kernel vmlinuz-4.9.0-14-arm64 -initrd initrd.img-4.9.0-14-arm64 -hda arm64.img -m 2048 -append &#8220;root=\/dev\/vda<span>2<\/span>&#8220;<\/div>\n<div>\u4e4b\u540e\u4f7f\u7528vnc\u8fde\u63a5\u5230\u4e3b\u673a\u768459001\u7aef\u53e3\uff0c\u4e00\u6837\u53ef\u4ee5\u6b63\u5e38\u542f\u52a8\u3002<\/div>\n<div><\/div>\n<div><b>Debian\u7f51\u7edc\u914d\u7f6e\uff1a<\/b><\/div>\n<div>\u9996\u5148\u5728windows\u4e0a\u5b89\u88c5openvpn\u7684TAP\u7f51\u5361\u9a71\u52a8\uff0c\u5b89\u88c5\u5b8c\u4e4b\u540e\u6709\u4e00\u4e2atap0\u7684\u7f51\u5361\u751f\u6210\u3002<\/div>\n<div>\u628atap0\u548c\u8fde\u63a5\u5230\u5916\u7f51\u7684\u201c\u4ee5\u592a\u7f51\u201d\u505a\u4e2a\u6865\u63a5\uff0c\u4f1a\u751f\u6210\u4e00\u4e2a\u7f51\u6865\uff0c\u7f51\u6865\u4f1a\u81ea\u52a8\u4ecedhcp\u670d\u52a1\u5668\u62ff\u5230\u5730\u5740\uff0ctap0\u548c\u201c\u4ee5\u592a\u7f51\u201d\u4e0d\u518d\u6709\u5730\u5740\u3002<\/div>\n<div>\u5728\u542f\u52a8\u7684debian\u91cc\u9762\u914d\u7f6e\u597dip\u3001gateway\u3001dns\u3001netmask\uff0cip\u5730\u5740\u548c\u5b50\u7f51\u548cwindows\u7f51\u6865\u7684\u5730\u5740\u5728\u540c\u4e00\u4e2a\u5b50\u7f51\uff0c\u4e0d\u8981\u51b2\u7a81\u3002<\/div>\n<div>\u518d\u52a0\u4e0a\u7f51\u7edc\u53c2\u6570\u91cd\u542fqemu\uff1a<\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -kernel\u00a0vmlinuz-4.9.0-14-arm64 -initrd\u00a0initrd.img-4.9.0-14-arm64 -hda arm64.img -m 2048 -append &#8220;root=\/dev\/vda<span>2<\/span>&#8221; -net nic -net tap,ifname=tap0<\/div>\n<div>\u6216\u8005VNC\u542f\u52a8\uff1a<\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -vnc 0.0.0.0:1 -monitor stdio -kernel vmlinuz-4.9.0-14-arm64 -initrd initrd.img-4.9.0-14-arm64 -hda arm64.img -m 2048 -append &#8220;root=\/dev\/vda<span>2<\/span>&#8221; -net nic -net tap,ifname=tap0<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>\u5b89\u88c5resolv\uff0c\u89e3\u51b3\/etc\/resolv.conf\u4e22\u5931\u95ee\u9898\uff1a<\/b><\/div>\n<div># apt-get install sudo<\/div>\n<div># apt-get install resolvconf<\/div>\n<div># service resolvconf start<\/div>\n<div># mkdir -p etc\/resolvconf\/resolv.conf.d\/<\/div>\n<div># vi etc\/resolvconf\/resolv.conf.d\/head<\/div>\n<div>nameserver\u00a0\u00a0\u00a0114.114.114.114<\/div>\n<div># resolvconf -u<\/div>\n<div># service networking restart<\/div>\n<div># cat \/etc\/resolv.conf<\/div>\n<div><\/div>\n<div><b>\u5b89\u88c5clang\u7f16\u8bd1\u5668\u548clldb\u8c03\u8bd5\u5668\uff1a<\/b><\/div>\n<div>\u7528ssh\u6216shell\u8fdb\u5165debian\u91cc\u9762\u6267\u884c\uff1a<\/div>\n<div>#\u00a0apt-get install make<\/div>\n<div># vi \/etc\/apt\/sources.list<\/div>\n<div><span>deb http:\/\/llvm.org\/apt\/unstable\/ llvm-toolchain-3.9 main<\/span><\/div>\n<div><span>deb-src http:\/\/llvm.org\/apt\/unstable\/ llvm-toolchain-3.9 main<\/span><\/div>\n<div><span>#\u00a0apt-get update<\/span><\/div>\n<div># wget -O &#8211; <a href=\"http:\/\/llvm.org\/apt\/llvm-snapshot.gpg.key\">http:\/\/llvm.org\/apt\/llvm-snapshot.gpg.key<\/a>| apt-key add &#8211;<\/div>\n<div># apt-get install clang-3.9 lldb-3.9<\/div>\n<div>\u505a\u6210\u53ef\u9009\u7248\u672c\uff0c\u4f18\u5148\u7ea7\u4e3a1\uff0c\u540e\u9762\u53ef\u4ee5\u589e\u52a0\u66f4\u9ad8\u7248\u672c\uff0c\u4f18\u5148\u7ea7\u8bbe\u7f6e\u4e3a2\/3\u7b49\u66f4\u9ad8\u7ea7\u522b\u5373\u53ef\uff1a<\/div>\n<div># update-alternatives &#8211;install \/usr\/bin\/clang clang \/usr\/bin\/clang-3.9\u00a0\u00a01 &#8211;slave \/usr\/bin\/clang++ clang++ \/usr\/bin\/clang++-3.9<\/div>\n<div><span># update-alternatives &#8211;install \/usr\/bin\/clang clang \/usr\/bin\/clang-5.0\u00a0 2 &#8211;slave \/usr\/bin\/clang++ clang++ \/usr\/bin\/clang++-5.0<\/span><\/div>\n<div># update-alternatives &#8211;install \/usr\/bin\/lldb lldb \/usr\/bin\/lldb-3.9\u00a0\u00a01\u00a0&#8211;slave \/usr\/bin\/lldb-server lldb-server \/usr\/bin\/lldb-server-3.9<\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<h2><span>\u5b89\u88c5Ubuntu\uff08\u4e0d\u80fd\u50cfDebian\u4e00\u6837\u7f51\u7edc\u5b89\u88c5\uff0c\u53ea\u80fd\u76f4\u63a5\u8fd0\u884ccloud\u00a0img\uff09\uff1a<\/span><\/h2>\n<div><b>\u5148\u5728linux\u4e0b\u6267\u884c\uff1a<\/b><\/div>\n<div>$ sudo apt-get install qemu-system-arm qemu-efi cloud-image-utils<\/div>\n<div>$ wget <a href=\"http:\/\/cloud-images.ubuntu.com\/bionic\/20210118\/bionic-server-cloudimg-arm64.img\">http:\/\/cloud-images.ubuntu.com\/bionic\/20210118\/bionic-server-cloudimg-arm64.img<\/a><\/div>\n<div>$ dd if=\/dev\/zero of=flash0.img bs=1M count=64<\/div>\n<div>$ dd if=\/usr\/share\/qemu-efi\/QEMU_EFI.fd of=flash0.img conv=notrunc<\/div>\n<div>$ dd if=\/dev\/zero of=flash1.img bs=1M count=64<\/div>\n<div>$ cat &gt;user-data &lt;&lt;EOF<\/div>\n<div>#cloud-config<\/div>\n<div>password: 123456<\/div>\n<div>chpasswd: { expire: False }<\/div>\n<div>ssh_pwauth: True<\/div>\n<div>EOF<\/div>\n<div>$ cloud-localds user-data.img user-data\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/\/\u505a\u6210image\u6587\u4ef6<\/div>\n<div>$ sudo qemu-img resize bionic-server-cloudimg-arm64.img +20G\u00a0 \u00a0 \/\/\u6269\u5145\u6839\u5206\u533a\u5927\u5c0f20GB<\/div>\n<div><b>\u00a0<\/b><\/div>\n<div><b>\u8f6c\u79fb\u5230windows\u4e0b\uff1a<\/b><\/div>\n<div>\u628aflash0.img\u3001flash1.img\u3001user-data.img\u3001bionic-server-cloudimg-arm64.img\u5168\u90e8\u62f7\u8d1d\u5230windows\u4e0b\u3002<\/div>\n<div><\/div>\n<div><b>win\u4e0b\u542f\u52a8\uff08\u7f51\u7edc\u8fd8\u662f\u8c61Debian\u4e00\u6837\u505a\u6865\u63a5\uff09\uff1a<\/b><\/div>\n<div>DOS&gt; qemu-system-aarch64.exe -machine virt-5.2 -cpu cortex-a72 -m 2048 -smp 2 -net nic -net tap,ifname=tap0 -pflash flash0.img -pflash flash1.img -drive file=user-data.img -drive if=none,file=bionic-server-cloudimg-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5b89\u88c5qemu\uff1a \u4e0b\u8f7dqemu-w64-setup-20201124.exe\uff0c\u5b89\u88c5\u540e\u8bbe\u7f6e\u597d\u73af\u5883\u53d8\u91cf\u3002 \u5b89\u88c5Deb &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,6,13],"tags":[828,218,277,90],"class_list":["post-1094","post","type-post","status-publish","format-standard","hentry","category-linuxandroid","category-6","category-13","tag-debian","tag-qemu","tag-ubuntu","tag-windows"],"views":8872,"_links":{"self":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1094"}],"version-history":[{"count":1,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1094\/revisions"}],"predecessor-version":[{"id":1095,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1094\/revisions\/1095"}],"wp:attachment":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1094"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}